NAV Navbar
Shell HTTP JavaScript Node.JS Ruby Python Java
  • Clio Api v4 Documentation v4
  • Developer Support and Feedback
  • Getting Started
  • Authorization with OAuth 2.0
  • Permissions
  • Fields
  • Rate Limiting
  • Paging
  • ETags
  • Minor Versions
  • Activities
  • Activity Rates
  • Activity Descriptions
  • Allocations
  • Bank Accounts
  • Bank Transactions
  • Bank Transfers
  • Bill Themes
  • Billable Clients
  • Billable Matters
  • Bills
  • Bulk Actions
  • Calendar Entries
  • Calendars
  • Communications
  • Contacts
  • Conversation Messages
  • Conversations
  • Jurisdictions To Triggers
  • Jurisdictions
  • Matter Dockets
  • Service Types
  • Clio Payments Cards
  • Credit Memos
  • Currencies
  • Custom Fields
  • Custom Field Sets
  • Groups
  • Import Details
  • Interest Charges
  • Line Items
  • Log Entries
  • Matters
  • Notes
  • Practice Areas
  • Relationships
  • Reminders
  • Reports
  • Billing Settings
  • Text Snippets
  • Tasks
  • Calendar Visibilities
  • Task Templates
  • Task Template Lists
  • Task Types
  • Timers
  • Trust Line Items
  • Trust Requests
  • Users
  • Utbms Sets
  • Utbms Codes
  • Webhooks
  • Document Archives
  • Documents
  • Document Automations
  • Document Categories
  • Document Templates
  • Folders
  • Schemas
  • Clio Api v4 Documentation v4

    Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

    Developer Support and Feedback

    As we are all aware, the importance of API-level development is paramount in the cloud-based software industry. Clio’s open API allows you to create valuable add-ons for your clients, and in turn, construct profitable revenue streams for your business.

    Please direct any inquiries to the appropriate channel:

    A community driven Clio Developers Stack Overflow Group also exists where you can connect and ask questions from other Clio API users.

    We look forward to seeing your creations and creating successful relationships!

    Getting Started

    The Clio API gives you and your approved developers secure access to the data in your Clio account. All Clio accounts, including free 7-day trial accounts, can be accessed using the documented Clio API. Learn how to make requests and receive data programmatically today (no need for lengthy signups or approvals).

    When you are ready to build an app and integrate with Clio, start by upgrading your 7-day free trial account to an account that will not expire. Request an upgrade to a developer account by connecting with our partnerships team by providing the email used in your 7-day free trial in the intake form at https://www.clio.com/become-api-partner/

    Please note that only accounts on a Boutique or Elite pricing plan can create apps or access applications not listed in the Clio Marketplace.

    Authorization with OAuth 2.0

    Create a Clio Application

    1. Login to your new Clio account at the login portal.
    2. Visit our developer portal.
    3. Click the Add button to create a new application. Enter details and select the scope of your application here - these details will be shown to Clio users when they're asked to authorize your application.
    4. Make note of the key and the secret, as these will be used to authorize your application with Clio.

    Obtaining Authorization

    Clio's API is only exposed through OAuth 2.0. In order to access any of the methods exposed in the API, your application must obtain authorization from the user.

    ### Grant Type: Authorization Code

    1. Your application needs to make a request asking for authorization by including the following parameters and values.

      If you are building a desktop or mobile application, you may embed this request inside a WebView/WebBrowser control. As a desktop or mobile app does not have a web server to redirect to, your app may use https://app.clio.com/oauth/approval for your redirect_uri. This will place the code or error in both the URL and page title, which should be easily parsed out. Intercepting the request will vary from platform to platform. Here are some references to get you started:

      * .NET: WebBrowser event webbrowser.navigated. * OSX: webView:resource:didReceiveResponse:fromDataSource on the WebResourceLoadDelegate. * iOS: webView:shouldStartLoadWithRequest:navigationType on the UIWebViewDelegate. * Android: WebViewClient event onPageStarted (android.webkit.WebView, java.lang.String, android.graphics.Bitmap).

      Parameters:

      response_type: code client_id: application key from above redirect_uri: callback URL to redirect to after authorization state (optional): Can be used by your application to maintain state between the request and the callback

      Request:

      http GET /oauth/authorize?response_type=code&client_id=fzaXZvrLWZX747wQQRNuASeVCBxaXpJaPMDi7F96&redirect_uri=http%3A%2F%2Fyourapp.com%2Fcallback&state=xyz HTTP/1.1 Host: app.clio.com

      Grant Approved:

      If the user grants your application access, Clio will redirect their browser to the callback url with an authorization code and any supplied state parameters. This code is only valid for 10 minutes.

      If you are building a desktop or mobile application, you will need to intercept the redirect to https://app.clio.com/oauth/approval inside your WebView/WebBrowser control and extract the code from the page's title. The title string will look like Success code=5IzZeWL2OmZUxGOGO4WE.

      Approved Redirect:

      http://yourapp.com/callback?code=s9jGYmL8E00ZyuJP3AEO&state=xyz

      Grant Declined:

      If the user declines your application access, Clio will redirect their browser to the callback url with an error parameter value of "access_denied".

      If you are building a desktop or mobile application, you will need to intercept the redirect to https://app.clio.com/oauth/approval inside your WebView/WebBrowser control and extract the error from the page's title. The title string will look like Failure error=access_denied.

      Declined Redirect:

      http://yourapp.com/callback?error=access_denied&state=xyz

    2. Your application may now make a POST request for an access token to Clio's token endpoint with the provided token. For Clio to verify the grant request, you must include your application's key and secret as well as the redirect_uri from the code request. Parameters:

      Parameters:

      client_id: application key from above client_secret: application secret from above grant_type: "authorization_code" code: Authorization code from the redirect above redirect_uri: Redirect URI used in the authorization request above

      Request:

          POST /oauth/token HTTP/1.1
          Host: app.clio.com
          Content-Type: application/x-www-form-urlencoded
      
          client_id=fzaXZvrLWZX747wQQRNuASeVCBxaXpJaPMDi7F96&client_secret=xVp5wAX05g1oDjV5astg2KZIZ85NX31FKTPV876v&grant_type=authorization_code&code=s9jGYmL8E00ZyuJP3AEO&redirect_uri=http%3A%2F%2Fyourapp.com%2Fcallback
      

      Response:

          HTTP/1.1 200 OK
          Content-Type: application/json
      
          {
            "token_type":"bearer",
            "access_token":"WjR8HLdo847Z8kdfUtewJpCvkRX4JYLCIF2dUUul",
            "expires_in":604800,
            "refresh_token":"5A0Ddf2RSt75v1VQcCoTB9rImRydF9yXA0gGvx7e"
          }
      
    3. Your application should save these tokens for future requests to the API. You should include an Authorization header with a value of Bearer access_token.

      See Oauth Refresh Tokens for more information on refresh tokens.

      Example Authorized Request:

        GET /api/v4/users/who_am_i HTTP/1.1
        Host: app.clio.com
        Authorization: Bearer WjR8HLdo847Z8kdfUtewJpCvkRX4JYLCIF2dUUul
      

      Example Ruby code for obtaining authorization with the authorization code grant type:

        require 'rubygems'
        require 'oauth2'
        client_key = 'Application key from https://app.clio.com/'
        client_secret = 'Application secret from https://app.clio.com/'
        client = OAuth2::Client.new(client_key, client_secret, :site => 'https://app.clio.com/')
      
        client.auth_code.authorize_url(:redirect_uri => 'http://yourapp.com/callback')
        # Redirect user or paste in the browser
        # => "https://app.clio.com/oauth/authorize?response_type=code&client_id=client_key&redirect_uri=http://yourapp.com/callback"
      
        # redirects to http://yourapp.com/callback?state=&code=secretcode
        # Use the code param below to get a token
      
        code = 'secretcode'
        token = client.auth_code.get_token(code, :redirect_uri => 'http://yourapp.com/callback')
        saved_token = token.token
        # => "WjR8HLdo847Z8kdfUtewJpCvkRX4JYLCIF2dUUul"
        saved_refresh_token = token.refresh_token
        # => "5A0Ddf2RSt75v1VQcCoTB9rImRydF9yXA0gGvx7e"
        # Save these values for future requests
      

      Example Ruby request:

        require 'rubygems'
        require 'oauth2'
      
        # Token saved from above
        saved_token = "WjR8HLdo847Z8kdfUtewJpCvkRX4JYLCIF2dUUul"
      
        client_key = 'Application key from https://app.clio.com/'
        client_secret = 'Application secret from https://app.clio.com/'
        client = OAuth2::Client.new(client_key, client_secret, :site => 'https://app.clio.com/')
      
        token = OAuth2::AccessToken.new(client, saved_token)
      
        response = token.get('/api/v4/users/who_am_i', params: {fields: 'id,name,last_name,first_name,email,enabled,account_owner'})
        response.class.name
        # => OAuth2::Response
        response.body
        # => "{\"data\":{\"id\":1,\"name\":\"Demo User\",\"first_name\":\"Demo\",\"last_name\":\"User\",\"email\":\"demo@clio.com\",\"enabled\":true,\"account_owner\":true}}"
      

      Deauthorization

    Deauthorization can happen in one of two ways: the user has revoked access to your application, or your application has requested to be deauthorized. When a user revokes access to your application, ALL access tokens will be revoked. If your application requests to be deauthorized, only the supplied access token will be revoked.

    In both cases Clio will make a POST request to your application's deauthorization callback URL (if present). The callback will include a JSON object containing the client_id, user_id and the access_token (set to "all" if user revoked).

    Deauthorization Callback Request:

    POST /deauthorization_callback HTTP/1.1
    Host: yourapp.com
    Content-Type: application/json
    
    
    {
      "client_id": "fzaXZvrLWZX747wQQRNuASeVCBxaXpJaPMDi7F96",
      "user_id": 2332,
      "access_token": "all"
    }
    

    For your application to deauthorize itself, you need to make an authorized POST request to /oauth/deauthorize. Clio's response should be a simple 200 status code.

    Parameters:

    token:         token to be revoked
    

    Request:

    POST /oauth/deauthorize HTTP/1.1
    Host: app.clio.com
    Authorization: Bearer WjR8HLdo847Z8kdfUtewJpCvkRX4JYLCIF2dUUul
    
    
    token=WjR8HLdo847Z8kdfUtewJpCvkRX4JYLCIF2dUUul
    

    Response:

    HTTP/1.1 200 OK
    

    Oauth Refresh Tokens

    For background on refresh tokens, see Understanding Refresh Tokens.

    When the user grants access to your application, you receive both an access token and a refresh token. The access token has a limited lifespan and will eventually expire. Once it expires, you can use your refresh token to refresh your access.

    Checking Expiry:

    Your access token has a limited lifespan. When you initially receive your access token, you also get back the token's lifespan, in seconds. Most Oauth libraries support checking to see if your token has expired.

    Example Ruby code:

    # Token obtained above
    token.expired?
    # => false
    token.expires_in
    # => 604770
    

    Refreshing Access:

    If your access token has expired, you can refresh your access. You use your refresh token with the grant_type: "refresh_token".

    Parameters:

      client_id:     application key from above
      client_secret: application secret from above
      grant_type:    "refresh_token"
      refresh_token: Refresh token code from above
    

    Request:

      POST /oauth/token HTTP/1.1
      Host: app.clio.com
      Content-Type: application/x-www-form-urlencoded
    
    
      client_id=fzaXZvrLWZX747wQQRNuASeVCBxaXpJaPMDi7F96&client_secret=xVp5wAX05g1oDjV5astg2KZIZ85NX31FKTPV876v&grant_type=refresh_token&refresh_token=5A0Ddf2RSt75v1VQcCoTB9rImRydF9yXA0gGvx7e
    

    Response:

      HTTP/1.1 200 OK
      Content-Type: application/json
    
    
      {
        "token_type":"bearer",
        "access_token":"rFlGXgfqh1e8yBIGGh4jSMaJAuOZb4Bo4VKEG6wK",
        "expires_in":604800,
        "refresh_token":"5A0Ddf2RSt75v1VQcCoTB9rImRydF9yXA0gGvx7e"
      }
    

    Example Ruby request:

    require 'rubygems'
    require 'oauth2'
    # Obtain token as described above.
    if token.expired?
      token = token.refresh! # Uses token.refresh_token value
      # Save the new access token for future requests.
    end
    

    Secure Your Refresh Token:

    Unlike the access token, your refresh token does not expire. You must ensure these tokens are securely stored and encrypted.

    Oauth Scopes

    For background on Oauth scopes, see Oauth.com's article.

    If you are writing an application which deals with tasks, you probably do not need access to bills or matters. Oauth scopes are a way to limit your access to the user’s account.

    When a user is prompted to authorize your application, they are presented with a list of Oauth scopes you are requesting, along with information on each scope. If they accept this list of scopes, they grant access. From then on, your application is restricted to only those scopes, for that user.

    You can select your list of scopes when you create your client application. For example, perhaps you need read access to contacts, read/write access to matters, and read access to users. Remember, the users will see each scope you are requesting, so you must choose the smallest set necessary for your application to function properly. The full list of available scopes is visible when you create a new client application.

    You may change your set of scopes at any time, but once a user has authorized your application, their scopes are fixed. If you subsequently need additional access, users will have to reauthorize your application.

    Read access allows you to read information for that endpoint. For example, read access to matters allows you to get a list of matters, or get detailed information about a specific matter. It also allows you access to related endpoints. Our documentation shows that matters, relationships, notes, practice areas, and log entries are all related. Read access to matters allows you read access to any of these related endpoints.

    Write access allows you to create, update, or destroy information for that endpoint. For example, write access to matters allows you to create a new matter, update an existing matter, or destroy a matter. Similarly, you get write access to all related endpoints.

    If you try to access an endpoint without the necessary scopes, you receive error code 403 - Forbidden.

    Response:

    HTTP/1.1 403 Forbidden
    
    
    {
      "error":{
        "type":"ForbiddenError",
        "message":"User is forbidden from taking that action"
      }
    }
    

    Be careful with nested fields! If you have read access to matters and read access to contacts, you can request information about a matter and its associated client, as follows: 'id,display_number,client{id,name}'

    Request:

    GET /api/v4/matters/1?fields=id,display_number,client{id,name} HTTP/1.1
    Host: yourapp.com
    Content-Type: application/json
    
    
    {
      "data": {
        "id":1,
        "display_number":"00001-Marquardt-Walter",
        "client":{
          "id":1,
          "name":"Marquardt-Walter"
        }
      }
    }
    

    If on the other hand, you have read access to matters but do not have read access to contacts, we will only display the client's id; all other information about the contact will be redacted.

    Request:

    GET /api/v4/matters/1?fields=id,display_number,client{id,name} HTTP/1.1
    Host: yourapp.com
    Content-Type: application/json
    
    
    {
      "data": {
        "id":1,
        "display_number":"00001-Marquardt-Walter",
        "client":{
          "id":1,
          "redacted":true
        }
      }
    }
    

    Here is some Ruby code demonstrating these concepts.

    require 'rubygems'
    require 'oauth2'
    
    
    client_key = 'SUNLAvcBLRpm58ifRJONr9pNyTznoUcvLCwA451y' # Your own value here
    client_secret = '0TkElPVV7ZBBPoY9jC3aZ6ucfxbORRcSqLewLnMG' # And here
    client = OAuth2::Client.new(client_key, client_secret, :site => 'https://app.clio.com/')
    token = OAuth2::AccessToken.new(client, saved_token) # saved_token is stored in your database
    
    
    # Now, let's assume you have read access to users, matters, and contacts.
    # This works, because you have read access to users.
    puts token.get('/api/v4/users/who_am_i').body
    # => {"data":{"etag":"\"93027c76885d9b2da02cf90713aedc78\"","id":1,"name":"Demo User"}}
    
    
    # This works, because you have read access to matters.
    puts token.get('/api/v4/matters').body
    # => {"data":[{"id":1,"etag":"\"beea69c32b8f86d3afb2ef8808a9ba00\"","display_number":"00001-Luettgen, Marks and Wilkinson"},{"id":2,"etag":"\"fb6d3a8bc51f7c34ed198222201f2eae\"","display_number":"00002-Cummings and Sons"},{"id":3,"etag":"\"7459639645818d811a6b77a76d26934d\"","display_number":"00003-Rogahn, Fritsch and Homenick"}],"meta":{"paging":{},"records":3}}
    
    
    # This works, because you have read access to matters and to contacts.
    puts token.get('/api/v4/matters/1', params: {fields: 'id,etag,display_number,description,client{id,first_name,last_name,name}'}).body
    # => {"data":{"id":1,"etag":"\"beea69c32b8f86d3afb2ef8808a9ba00\"","display_number":"00001-Luettgen, Marks and Wilkinson","description":"In eveniet exercitationem et.","client":{"id":1,"name":"Luettgen, Marks and Wilkinson"}}}
    
    
    # Now, let's assume you have read access to matters, but no access to contacts or users.
    puts token.get('/api/v4/contacts').body
    # => {"error":{"type":"ForbiddenError","message":"User is forbidden from taking that action"}}
    # The response code is 403 - Forbidden
    
    
    # This doesn't work either; you don't have read access to users.
    puts token.get('/api/v4/users/who_am_i').body
    # => {"error":{"type":"ForbiddenError","message":"User is forbidden from taking that action"}}
    
    
    # Let's try to get information about contacts, via matters:
    puts token.get('/api/v4/matters/1', params: {fields: 'id,etag,display_number,description,client{id,first_name,last_name,name}'}).body
    # => {"data":{"id":1,"etag":"\"beea69c32b8f86d3afb2ef8808a9ba00\"","display_number":"00001-Luettgen, Marks and Wilkinson","description":"In eveniet exercitationem et.","client":{"id":1,"redacted":true}}}
    # Note that all information about the client other than the id is redacted.
    

    Permissions

    Some objects in Clio are protected via permissions. This could be due to insufficient Oauth scope permissions, or from the role permissions inside Clio. If associated data is protected in this fashion, we will remove requested fields, and add a redacted boolean field onto the object. This field may be requested just like any others, but it will automatically be added if we have redacted the object.

    For example, if the user does not have the Billing permission, or if the user has not granted the Clio application the ability to read bills, you may have a response similar to: ```http GET /api/v4/activities/15?fields=id,bills{id,number} HTTP/1.1 Host: yourapp.com Content-Type: application/json

    { "data": { "id": 15, "bill": { "id": 527, "redacted": true} } } ```

    Matters

    If the protected data is a matter, the response will behave as stated above, with the exception that the matter's display_number will be included in the response if requested. For example, consider a task with an associated matter that the user does not have permission to access: ```http GET /api/v4/tasks/16?fields=id,matter{id,display_number,client} HTTP/1.1 Host: yourapp.com Content-Type: application/json

    { "data": { "id": 16, "matter": { "id": 1, "display_number": "00001-Luettgen, Marks and Wilkinson", "redacted": true} } } ```

    Activities

    In version 4.0.5, if the activity is of type TimeEntry and the user has a rate visibility of limited or none, the response will show everything that is requested, with the exception that the price and total may be redacted: ```http GET /api/v4/activities?fields=id,quantity,price,total HTTP/1.1 Host: yourapp.com Content-Type: application/json

    { "data": { "id": 16, "quantity": 2197, "redacted": true } } `` If the user’s rate visibility is set tolimited, both thepriceandtotalof the time entries that other users have created are removed from the response and the attributeredactedis set astrueto indicate the hidden information. If the user’s rate visibility is set tonone, both thepriceandtotalof all time entries are removed from the response and the attributeredactedis set astrue` to indicate the hidden information.

    Fields

    By default only the fields id and etag are returned as part of the response. Each request may specify which fields it wants to receive as a comma separated list on the fields parameter. For example: fields=id,etag. Nested resources will return the resource\'s default fields. To change this behavior, other fields from nested resources can be requested by placing a comma separated list inside {, }. For example: fields=id,etag,nested_resource{id,name}. If a field is invalid, a 400 Bad Request will be returned.

    Rate Limiting

    Requests to API v4 are rate-limited by OAuth token. This means that after a certain number of requests in a given time period, the API will return a 429 Too Many Requests response. Regular responses will include two headers: X-RateLimit-Limit (the number of allowed requests in a time period) and X-RateLimit-Remaining (the number of remaining requests in the time period)

    If the limit is exceeded a Retry-After header will be supplied with the number of seconds to wait until the request should be tried again.

    Certain endpoints have custom rate limits. See specific endpoint documentation for further information.

    Paging

    Index actions are limited to 200 resources unless otherwise specified. A limit parameter may be supplied to lower this limit. An offset parameter may be supplied to skip records. Metadata about paging is returned in the index actions: { data: { ... }, meta: { paging: { previous: '', next: '' } }, }

    The previous and next fields will be URLs for the previous and next page of data, respectively. If there is no previous or next page, the field will be missing.

    There is a limit to the number of resources that can be requested through pagination so if you are expecting a large data set, we recommend using Bulk Actions. If you attempt to retrieve a page over the limit, you will receive a 422 ArgumentError.

    ETags

    "For single resources we return ETag and Last-Modified HTTP headers. etag is also a field on most resources that can be returned via index actions. If you supply an If-None-Match or If-Modified-Since header with the values of the resource's ETag or Last-Modified field, respectively, the API will return a 304 Not Modified response."

    Minor Versions

    API v4 may have multiple minor versions. Versions are of the form '4.X.Y'. Optionally a X-API-VERSION header may be supplied to keep specific behavior. If this header is omitted, it will default to the latest version. An X-API-VERSION will be included in all successful responses with the version that is being used. If the header is present but invalid, it will return a 410 GONE response. If the header is present and valid, but it is no longer supported, it will return a 410 GONE response. - 4.0.4

    Update quantity field to return values in seconds rather than hours for Activities

    This is the current version

    Base URLs:

    Email: Support

    Activities

    Activities (Time Entries and Expense Entries) track work done at a firm. Activities are recorded in Clio and then posted on bills to clients.

    Time Entries can be either be hourly-billable or flat-rate. An hourly-billable Time Entry is valued at the billing rate multiplied by the time entered. Examples could be a phone call, or a research session. A flat-rate Time Entry has a set value. Examples could be a visa application, or a contract review.

    Expenses are reimbursable costs the firm pays on behalf of a client (for example, postage, copy fees, etc.).

    Support Link

    Activities in Clio

    Activity#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/activities.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/activities.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activities.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/activities.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/activities.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/activities.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activities.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /activities.json

    Return the data for all Activities

    Outlines the parameters, optional and required, used when requesting the data for all Activities

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    activity_description_id query integer(int32) false The unique identifier for a single ActivityDescription. Use the keyword null to match those without a Activity. The list will be filtered to include only the Activity records with the matching property.
    communication_id query integer(int32) false The unique identifier for a single Communication. Use the keyword null to match those without a Activity. The list will be filtered to include only the Activity records with the matching property.
    created_since query string(date-time) false Filter Activity records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    end_date query string(date-time) false Filter Activity records to those whose date is on or before the date provided (Expects an ISO-8601 date).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    flat_rate query boolean false Filter Activity TimeEntry records to those that have a flat rate, or not.
    ids[] query integer(int32) false Filter Activity records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of Activity records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. Use the keyword null to match those without a Activity. The list will be filtered to include only the Activity records with the matching property.
    order query string false Orders the Activity records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for note matching a given string.
    start_date query string(date-time) false Filter Activity records to those whose date is on or after the date provided (Expects an ISO-8601 date).
    status query string false Filter Activity records to those that are billed or unbilled.
    type query string false Filter Activity records to those of a specific type.
    updated_since query string(date-time) false Filter Activity records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).
    user_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a Activity. The list will be filtered to include only the Activity records with the matching property.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)
    order display_number(asc)
    order display_number(desc)
    order user.name(asc)
    order user.name(desc)
    order price(asc)
    order price(desc)
    order total(asc)
    order total(desc)
    order date(asc)
    order date(desc)
    order note(asc)
    order note(desc)
    order updated_at(asc)
    order updated_at(desc)
    status billed
    status unbilled
    type TimeEntry
    type ExpenseEntry

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ActivityList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Activity#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/activities.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/activities.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activities.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "activity_description": {
          "id": 0,
          "utbms_task_id": 0,
          "utbms_activity_id": 0
        },
        "communication": {
          "id": 0
        },
        "date": "2018-03-22",
        "matter": {
          "id": 0
        },
        "note": "string",
        "price": 0,
        "quantity": 0,
        "start_timer": true,
        "type": "TimeEntry",
        "user": {
          "id": 0
        },
        "utbms_expense": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/activities.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/activities.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/activities.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activities.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /activities.json

    Create a new Activity

    Outlines the parameters and data fields used when creating a new Activity

    Body parameter

    {
      "data": {
        "activity_description": {
          "id": 0,
          "utbms_task_id": 0,
          "utbms_activity_id": 0
        },
        "communication": {
          "id": 0
        },
        "date": "2018-03-22",
        "matter": {
          "id": 0
        },
        "note": "string",
        "price": 0,
        "quantity": 0,
        "start_timer": true,
        "type": "TimeEntry",
        "user": {
          "id": 0
        },
        "utbms_expense": {
          "id": 0
        }
      }
    }
    
    data:
      activity_description:
        id: 0
        utbms_task_id: 0
        utbms_activity_id: 0
      communication:
        id: 0
      date: '2018-03-22'
      matter:
        id: 0
      note: string
      price: 0
      quantity: 0
      start_timer: true
      type: TimeEntry
      user:
        id: 0
      utbms_expense:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» activity_description body object false No description
    »»» id body integer(int32) false The unique identifier for a single ActivityDescription associated with the Activity. The keyword null is not valid for this field.
    »»» utbms_task_id body integer(int32) false The unique identifier for a single UtbmsTask associated with the Activity. The keyword null is not valid for this field.
    »»» utbms_activity_id body integer(int32) false The unique identifier for a single UtbmsActivity associated with the Activity. The keyword null is not valid for this field.
    »» communication body object false No description
    »»» id body integer(int32) false The unique identifier for a single Communication associated with the Activity. The keyword null is not valid for this field.
    »» date body string(date) true The date the Activity was performed. (Expects an ISO-8601 date).
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the Activity. The keyword null is not valid for this field.
    »» note body string false A custom note to describe what the Activity is for.
    »» price body number(double) false For an ExpenseEntry, it is the expense amount.
    »» quantity body number(double) false The field is applicable to time entries only.
    »» start_timer body boolean false Whether or not a timer should be started for this Activity. Only valid for non-FlatRate, non-billed TimeEntries.
    »» type body string true The type the Activity.
    »» user body object false No description
    »»» id body integer(int32) false The unique identifier for a single User associated with the Activity.
    »» utbms_expense body object false No description
    »»» id body integer(int32) false The unique identifier for a single UtbmsExpense associated with the Activity. The keyword null is not valid for this field.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    »» price: For an ExpenseEntry, it is the expense amount.

    Support Link for ExpenseEntry

    For a TimeEntry, it is the hourly or flat amount. When updating a TimeEntry, if the price is not given or the user does not have the permission to view the rate, and its activity description, matter and/or user is changed, the price is reset according to the rate defined for the activity description, matter, client or user.

    Support Link for Rates Hierarchy

    Support Link for Billing Rate Visibility

    »» quantity: The field is applicable to time entries only.

    Version <= 4.0.3: The number of hours the Activity took.

    Latest version: The number of seconds the Activity took.

    »»» id: The unique identifier for a single User associated with the Activity. Use the keyword null to specify no association. On creation, if no user is specified, it will default to the current user.

    If a TimeEntry is created by a Clio Connect user, the field is not editable.

    Enumerated Values

    Parameter Value
    »» type TimeEntry
    »» type ExpenseEntry

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created ActivityShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Activity#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/activities/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/activities/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activities/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/activities/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/activities/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/activities/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activities/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /activities/{id}.json

    Return the data for a single Activity

    Outlines the parameters, optional and required, used when requesting the data for a single Activity

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Activity.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ActivityShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Activity#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/activities/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/activities/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activities/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "activity_description": {
          "id": 0,
          "utbms_task_id": 0,
          "utbms_activity_id": 0
        },
        "communication": {
          "id": 0
        },
        "date": "2018-03-22",
        "matter": {
          "id": 0
        },
        "note": "string",
        "price": 0,
        "quantity": 0,
        "start_timer": true,
        "user": {
          "id": 0
        },
        "utbms_expense": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/activities/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/activities/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/activities/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activities/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /activities/{id}.json

    Update a single Activity

    Outlines the parameters and data fields used when updating a single Activity

    Body parameter

    {
      "data": {
        "activity_description": {
          "id": 0,
          "utbms_task_id": 0,
          "utbms_activity_id": 0
        },
        "communication": {
          "id": 0
        },
        "date": "2018-03-22",
        "matter": {
          "id": 0
        },
        "note": "string",
        "price": 0,
        "quantity": 0,
        "start_timer": true,
        "user": {
          "id": 0
        },
        "utbms_expense": {
          "id": 0
        }
      }
    }
    
    data:
      activity_description:
        id: 0
        utbms_task_id: 0
        utbms_activity_id: 0
      communication:
        id: 0
      date: '2018-03-22'
      matter:
        id: 0
      note: string
      price: 0
      quantity: 0
      start_timer: true
      user:
        id: 0
      utbms_expense:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Activity.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» activity_description body object false No description
    »»» id body integer(int32) false The unique identifier for a single ActivityDescription associated with the Activity. The keyword null is not valid for this field.
    »»» utbms_task_id body integer(int32) false The unique identifier for a single UtbmsTask associated with the Activity. The keyword null is not valid for this field.
    »»» utbms_activity_id body integer(int32) false The unique identifier for a single UtbmsActivity associated with the Activity. The keyword null is not valid for this field.
    »» communication body object false No description
    »»» id body integer(int32) false The unique identifier for a single Communication associated with the Activity. The keyword null is not valid for this field.
    »» date body string(date) false The date the Activity was performed. (Expects an ISO-8601 date).
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the Activity. The keyword null is not valid for this field.
    »» note body string false A custom note to describe what the Activity is for.
    »» price body number(double) false For an ExpenseEntry, it is the expense amount.
    »» quantity body number(double) false The field is applicable to time entries only.
    »» start_timer body boolean false Whether or not a timer should be started for this Activity. Only valid for non-FlatRate, non-billed TimeEntries.
    »» user body object false No description
    »»» id body integer(int32) false The unique identifier for a single User associated with the Activity.
    »» utbms_expense body object false No description
    »»» id body integer(int32) false The unique identifier for a single UtbmsExpense associated with the Activity. The keyword null is not valid for this field.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    »» price: For an ExpenseEntry, it is the expense amount.

    Support Link for ExpenseEntry

    For a TimeEntry, it is the hourly or flat amount. When updating a TimeEntry, if the price is not given or the user does not have the permission to view the rate, and its activity description, matter and/or user is changed, the price is reset according to the rate defined for the activity description, matter, client or user.

    Support Link for Rates Hierarchy

    Support Link for Billing Rate Visibility

    »» quantity: The field is applicable to time entries only.

    Version <= 4.0.3: The number of hours the Activity took.

    Latest version: The number of seconds the Activity took.

    »»» id: The unique identifier for a single User associated with the Activity. Use the keyword null to specify no association. On creation, if no user is specified, it will default to the current user.

    If a TimeEntry is created by a Clio Connect user, the field is not editable.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ActivityShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Activity#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/activities/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/activities/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activities/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/activities/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/activities/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/activities/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activities/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /activities/{id}.json

    Delete a single Activity

    Outlines the parameters, optional and required, used when deleting the record for a single Activity

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Activity.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Activity Rates

    ActivityRate#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/activity_rates.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/activity_rates.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activity_rates.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/activity_rates.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/activity_rates.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/activity_rates.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activity_rates.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /activity_rates.json

    Return the data for all ActivityRates

    Outlines the parameters, optional and required, used when requesting the data for all ActivityRates

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    co_counsel_contact_id query integer(int32) false The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the ActivityRate records with the matching property.
    contact_id query integer(int32) false The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the ActivityRate records with the matching property.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of ActivityRate records to be returned. Limit can range between 1 and 200. Default: 200.
    page_token query integer(int32) false A token specifying which page to return.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ActivityRateList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    ActivityRate#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/activity_rates.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/activity_rates.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activity_rates.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "co_counsel_contact_id": 0,
        "contact_id": 0,
        "flat_rate": true,
        "rate": 0
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/activity_rates.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/activity_rates.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/activity_rates.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activity_rates.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /activity_rates.json

    Create a new ActivityRate

    Outlines the parameters and data fields used when creating a new ActivityRate

    Body parameter

    {
      "data": {
        "co_counsel_contact_id": 0,
        "contact_id": 0,
        "flat_rate": true,
        "rate": 0
      }
    }
    
    data:
      co_counsel_contact_id: 0
      contact_id: 0
      flat_rate: true
      rate: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body ActivityRate_createBody false JSON body
    » data body object true No description
    »» co_counsel_contact_id body integer(int32) false The unique identifier for a single Contact associated with the ActivityRate. The keyword null is not valid for this field.
    »» contact_id body integer(int32) false The unique identifier for a single Contact associated with the ActivityRate. The keyword null is not valid for this field.
    »» flat_rate body boolean false Whether this is a flat rate
    »» rate body number(double) false Monetary value of this rate. Either hourly value or flat rate value

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created ActivityRateShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    ActivityRate#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/activity_rates/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/activity_rates/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activity_rates/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/activity_rates/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/activity_rates/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/activity_rates/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activity_rates/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /activity_rates/{id}.json

    Return the data for a single ActivityRate

    Outlines the parameters, optional and required, used when requesting the data for a single ActivityRate

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the ActivityRate.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ActivityRateShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    ActivityRate#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/activity_rates/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/activity_rates/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activity_rates/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "co_counsel_contact_id": 0,
        "contact_id": 0,
        "flat_rate": true,
        "rate": 0
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/activity_rates/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/activity_rates/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/activity_rates/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activity_rates/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /activity_rates/{id}.json

    Update a single ActivityRate

    Outlines the parameters and data fields used when updating a single ActivityRate

    Body parameter

    {
      "data": {
        "co_counsel_contact_id": 0,
        "contact_id": 0,
        "flat_rate": true,
        "rate": 0
      }
    }
    
    data:
      co_counsel_contact_id: 0
      contact_id: 0
      flat_rate: true
      rate: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the ActivityRate.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body ActivityRate_createBody false JSON body
    » data body object true No description
    »» co_counsel_contact_id body integer(int32) false The unique identifier for a single Contact associated with the ActivityRate. The keyword null is not valid for this field.
    »» contact_id body integer(int32) false The unique identifier for a single Contact associated with the ActivityRate. The keyword null is not valid for this field.
    »» flat_rate body boolean false Whether this is a flat rate
    »» rate body number(double) false Monetary value of this rate. Either hourly value or flat rate value

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ActivityRateShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    ActivityRate#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/activity_rates/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/activity_rates/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activity_rates/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/activity_rates/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/activity_rates/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/activity_rates/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activity_rates/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /activity_rates/{id}.json

    Delete a single ActivityRate

    Outlines the parameters, optional and required, used when deleting the record for a single ActivityRate

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the ActivityRate.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Activity Descriptions

    Activity Descriptions are custom Time Entry templates. Activity Descriptions help firms expedite their process for recording Time Entries, and ensure that their Time Entry descriptions are consistent.

    Support Link

    Activity Descriptions in Clio

    ActivityDescription#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/activity_descriptions.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/activity_descriptions.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activity_descriptions.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/activity_descriptions.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/activity_descriptions.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/activity_descriptions.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activity_descriptions.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /activity_descriptions.json

    Return the data for all ActivityDescriptions

    Outlines the parameters, optional and required, used when requesting the data for all ActivityDescriptions

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    created_since query string(date-time) false Filter ActivityDescription records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    flat_rate query boolean false Filter ActivityDescription records to those that have a flat rate, or not.
    ids[] query integer(int32) false Filter ActivityDescription records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of ActivityDescription records to be returned. Limit can range between 1 and 200. Default: 200.
    page_token query integer(int32) false A token specifying which page to return.
    rate_for[matter_id] query integer(int32) false Matter id for rate calculation.
    rate_for[user_id] query integer(int32) false User id for rate calculation. If not provided, the user associated to the API request is assumed.
    updated_since query string(date-time) false Filter ActivityDescription records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).
    user_id query integer(int32) false The unique identifier for a single User. The keyword null is not valid for this field. The list will be filtered to include only the ActivityDescription records with the matching property.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ActivityDescriptionList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    ActivityDescription#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/activity_descriptions.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/activity_descriptions.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activity_descriptions.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "default": true,
        "groups": [
          {
            "id": 0
          }
        ],
        "name": "string",
        "rate": {
          "amount": 0,
          "type": "User"
        },
        "visible_to_co_counsel": true
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/activity_descriptions.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/activity_descriptions.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/activity_descriptions.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activity_descriptions.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /activity_descriptions.json

    Create a new ActivityDescription

    Outlines the parameters and data fields used when creating a new ActivityDescription

    Body parameter

    {
      "data": {
        "default": true,
        "groups": [
          {
            "id": 0
          }
        ],
        "name": "string",
        "rate": {
          "amount": 0,
          "type": "User"
        },
        "visible_to_co_counsel": true
      }
    }
    
    data:
      default: true
      groups:
        - id: 0
      name: string
      rate:
        amount: 0
        type: User
      visible_to_co_counsel: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» default body boolean false Whether or not this should be the API User's default ActivityDescription.
    »» groups body [object] false No description
    »»» id body integer(int32) false The unique identifier for a single Group associated with the ActivityDescription. The keyword null is not valid for this field.
    »» name body string true A detailed description of the ActivityDescription.
    »» rate body object false No description
    »»» amount body number(double) false The rate of the ActivityDescription. This is ignored for 'User' rates.
    »»» type body string false What kind of rate it will be.
    »» visible_to_co_counsel body boolean false Whether or not co counsels on the account can see this ActivityDescription.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »»» type User
    »»» type FlatRate
    »»» type Custom

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created ActivityDescriptionShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    ActivityDescription#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/activity_descriptions/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/activity_descriptions/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activity_descriptions/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/activity_descriptions/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/activity_descriptions/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/activity_descriptions/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activity_descriptions/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /activity_descriptions/{id}.json

    Return the data for a single ActivityDescription

    Outlines the parameters, optional and required, used when requesting the data for a single ActivityDescription

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the ActivityDescription.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ActivityDescriptionShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    ActivityDescription#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/activity_descriptions/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/activity_descriptions/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activity_descriptions/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "default": true,
        "groups": [
          {
            "id": 0,
            "_deleted": true
          }
        ],
        "name": "string",
        "rate": {
          "amount": 0,
          "type": "User"
        },
        "visible_to_co_counsel": true
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/activity_descriptions/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/activity_descriptions/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/activity_descriptions/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activity_descriptions/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /activity_descriptions/{id}.json

    Update a single ActivityDescription

    Outlines the parameters and data fields used when updating a single ActivityDescription

    Body parameter

    {
      "data": {
        "default": true,
        "groups": [
          {
            "id": 0,
            "_deleted": true
          }
        ],
        "name": "string",
        "rate": {
          "amount": 0,
          "type": "User"
        },
        "visible_to_co_counsel": true
      }
    }
    
    data:
      default: true
      groups:
        - id: 0
          _deleted: true
      name: string
      rate:
        amount: 0
        type: User
      visible_to_co_counsel: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the ActivityDescription.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» default body boolean false Whether or not this should be the API User's default ActivityDescription.
    »» groups body [object] false No description
    »»» id body integer(int32) false The unique identifier for a single Group associated with the ActivityDescription. The keyword null is not valid for this field.
    »»» _deleted body boolean false A flag to determine if this Group should lose access to this ActivityDescription.
    »» name body string false A detailed description of the ActivityDescription.
    »» rate body object false No description
    »»» amount body number(double) false The rate of the ActivityDescription. This is ignored for 'User' rates.
    »»» type body string false What kind of rate it will be.
    »» visible_to_co_counsel body boolean false Whether or not co counsels on the account can see this ActivityDescription.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »»» type User
    »»» type FlatRate
    »»» type Custom

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ActivityDescriptionShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    ActivityDescription#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/activity_descriptions/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/activity_descriptions/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/activity_descriptions/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/activity_descriptions/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/activity_descriptions/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/activity_descriptions/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/activity_descriptions/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /activity_descriptions/{id}.json

    Delete a single ActivityDescription

    Outlines the parameters, optional and required, used when deleting the record for a single ActivityDescription

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the ActivityDescription.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Allocations

    Once a [Payment}(https://support.clio.com/hc/en-us/articles/203451210-Recording-Payments-on-Bills) or Credit Memo has been recorded, an Allocation links it to a Bill.

    Support Link

    Allocation#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/allocations.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/allocations.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/allocations.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/allocations.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/allocations.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/allocations.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/allocations.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /allocations.json

    Return the data for all Allocations

    Outlines the parameters, optional and required, used when requesting the data for all Allocations

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    bill_id query integer(int32) false The unique identifier for a single Bill. The keyword null is not valid for this field. The list will be filtered to include only the Allocation records with the matching property.
    contact_id query integer(int32) false The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the Allocation records with the matching property.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of Allocation records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the Allocation records with the matching property.
    order query string false Orders the Allocation records by the given field. Default: date(asc).
    page_token query integer(int32) false A token specifying which page to return.
    parent_id query integer(int32) false ID of parent (either a Payment or CreditMemo) this allocation belongs to
    parent_type query integer(int32) false Filter Allocation records based on whether the parent is a CreditMemo or a Payment.
    status query string false Filter Allocation records to those that are valid or invalid.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order date(asc)
    order date(desc)
    status valid
    status invalid

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok AllocationList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Allocation#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/allocations/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/allocations/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/allocations/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/allocations/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/allocations/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/allocations/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/allocations/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /allocations/{id}.json

    Return the data for a single Allocation

    Outlines the parameters, optional and required, used when requesting the data for a single Allocation

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Allocation.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok AllocationShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Bank Accounts

    These accounts are meant to mirror the firm’s accounts at their financial institution. Users can add a bank account to Clio to use with Clio Payments, and for use as an audit and reconciliation tool.

    Support Link

    BankAccount#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/bank_accounts.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/bank_accounts.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bank_accounts.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/bank_accounts.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/bank_accounts.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/bank_accounts.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bank_accounts.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /bank_accounts.json

    Return the data for all BankAccounts

    Outlines the parameters, optional and required, used when requesting the data for all BankAccounts

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of BankAccount records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the BankAccount records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    show_empty_accounts query boolean false Filter BankAccount records to those having a zero or non zero balance.
    type query string false Filter BankAccount records to those having a specific type.
    user_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a BankAccount. The list will be filtered to include only the BankAccount records with the matching property.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)
    order name(asc)
    order name(desc)
    order institution(asc)
    order institution(desc)
    order account_number(asc)
    order account_number(desc)
    order transit_number(asc)
    order transit_number(desc)
    order currency(asc)
    order currency(desc)
    type OperatingAccount
    type TrustAccount

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BankAccountList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    BankAccount#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/bank_accounts.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/bank_accounts.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bank_accounts.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "account_number": "string",
        "balance": 0,
        "currency": "string",
        "default_account": true,
        "domicile_branch": "string",
        "general_ledger_number": "string",
        "holder": "string",
        "institution": "string",
        "name": "string",
        "swift": "string",
        "transit_number": "string",
        "type": "Operating"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/bank_accounts.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/bank_accounts.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/bank_accounts.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bank_accounts.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /bank_accounts.json

    Create a new BankAccount

    Outlines the parameters and data fields used when creating a new BankAccount

    Body parameter

    {
      "data": {
        "account_number": "string",
        "balance": 0,
        "currency": "string",
        "default_account": true,
        "domicile_branch": "string",
        "general_ledger_number": "string",
        "holder": "string",
        "institution": "string",
        "name": "string",
        "swift": "string",
        "transit_number": "string",
        "type": "Operating"
      }
    }
    
    data:
      account_number: string
      balance: 0
      currency: string
      default_account: true
      domicile_branch: string
      general_ledger_number: string
      holder: string
      institution: string
      name: string
      swift: string
      transit_number: string
      type: Operating
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» account_number body string false Account number for the BankAccount.
    »» balance body number(double) false BankAccount balance.
    »» currency body string false Currency the BankAccount is in.
    »» default_account body boolean false Whether or not the BankAccount should be the default account.
    »» domicile_branch body string false Branch where the BankAccount was opened.
    »» general_ledger_number body string false General ledger number used for the Law Society of Alberta.
    »» holder body string false BankAccount holder.
    »» institution body string false Financial institution.
    »» name body string false BankAccount name.
    »» swift body string false Identification code for the financial institution.
    »» transit_number body string false Transit number for the BankAccount branch.
    »» type body string true Type of BankAccount.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» type Operating
    »» type Trust

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created BankAccountShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    BankAccount#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/bank_accounts/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/bank_accounts/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bank_accounts/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/bank_accounts/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/bank_accounts/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/bank_accounts/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bank_accounts/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /bank_accounts/{id}.json

    Return the data for a single BankAccount

    Outlines the parameters, optional and required, used when requesting the data for a single BankAccount

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the BankAccount.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BankAccountShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    BankAccount#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/bank_accounts/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/bank_accounts/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bank_accounts/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "account_number": "string",
        "currency": "string",
        "default_account": true,
        "domicile_branch": "string",
        "general_ledger_number": "string",
        "holder": "string",
        "institution": "string",
        "name": "string",
        "swift": "string",
        "transit_number": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/bank_accounts/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/bank_accounts/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/bank_accounts/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bank_accounts/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /bank_accounts/{id}.json

    Update a single BankAccount

    Outlines the parameters and data fields used when updating a single BankAccount

    Body parameter

    {
      "data": {
        "account_number": "string",
        "currency": "string",
        "default_account": true,
        "domicile_branch": "string",
        "general_ledger_number": "string",
        "holder": "string",
        "institution": "string",
        "name": "string",
        "swift": "string",
        "transit_number": "string"
      }
    }
    
    data:
      account_number: string
      currency: string
      default_account: true
      domicile_branch: string
      general_ledger_number: string
      holder: string
      institution: string
      name: string
      swift: string
      transit_number: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the BankAccount.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» account_number body string false Account number for the BankAccount.
    »» currency body string false Currency the BankAccount is in.
    »» default_account body boolean false Whether or not the BankAccount should be the default account.
    »» domicile_branch body string false Branch where the BankAccount was opened.
    »» general_ledger_number body string false General ledger number used for the Law Society of Alberta.
    »» holder body string false BankAccount holder.
    »» institution body string false Financial institution.
    »» name body string false BankAccount name.
    »» swift body string false Identification code for the financial institution.
    »» transit_number body string false Transit number for the BankAccount branch.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BankAccountShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    BankAccount#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/bank_accounts/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/bank_accounts/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bank_accounts/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/bank_accounts/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/bank_accounts/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/bank_accounts/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bank_accounts/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /bank_accounts/{id}.json

    Delete a single BankAccount

    Outlines the parameters, optional and required, used when deleting the record for a single BankAccount

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the BankAccount.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Bank Transactions

    BankTransaction#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/bank_transactions.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/bank_transactions.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bank_transactions.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/bank_transactions.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/bank_transactions.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/bank_transactions.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bank_transactions.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /bank_transactions.json

    Return the data for all BankTransactions

    Outlines the parameters, optional and required, used when requesting the data for all BankTransactions

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    bank_account_id query integer(int32) false The unique identifier for a single BankAccount. The keyword null is not valid for this field. The list will be filtered to include only the BankTransaction records with the matching property.
    client_id query integer(int32) false The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the BankTransaction records with the matching property.
    created_since query string(date-time) false Filter BankTransaction records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter BankTransaction records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of BankTransaction records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the BankTransaction records with the matching property.
    order query string false Orders the BankTransaction records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    type query string false Filter BankTransaction records to those having a specific type.
    updated_since query string(date-time) false Filter BankTransaction records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    type asset
    type liability

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BankTransactionList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    BankTransaction#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/bank_transactions/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/bank_transactions/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bank_transactions/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/bank_transactions/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/bank_transactions/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/bank_transactions/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bank_transactions/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /bank_transactions/{id}.json

    Return the data for a single BankTransaction

    Outlines the parameters, optional and required, used when requesting the data for a single BankTransaction

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the BankTransaction.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BankTransactionShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Bank Transfers

    BankTransfer#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/bank_transfers/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/bank_transfers/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bank_transfers/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/bank_transfers/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/bank_transfers/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/bank_transfers/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bank_transfers/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /bank_transfers/{id}.json

    Return the data for a single BankTransfer

    Outlines the parameters, optional and required, used when requesting the data for a single BankTransfer

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the BankTransfer.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BankTransferShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Bill Themes

    BillTheme#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/bill_themes.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/bill_themes.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bill_themes.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/bill_themes.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/bill_themes.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/bill_themes.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bill_themes.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /bill_themes.json

    Return the data for all BillThemes

    Outlines the parameters, optional and required, used when requesting the data for all BillThemes

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    created_since query string(date-time) false Filter BillTheme records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter BillTheme records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of BillTheme records to be returned. Limit can range between 1 and 200. Default: 200.
    page_token query integer(int32) false A token specifying which page to return.
    updated_since query string(date-time) false Filter BillTheme records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BillThemeList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    BillTheme#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/bill_themes/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    PATCH /api/v4/bill_themes/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bill_themes/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "config": "string",
        "name": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/bill_themes/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.patch '/api/v4/bill_themes/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.patch('/api/v4/bill_themes/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bill_themes/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /bill_themes/{id}.json

    Update a single BillTheme

    Outlines the parameters and data fields used when updating a single BillTheme

    Body parameter

    {
      "data": {
        "config": "string",
        "name": "string"
      }
    }
    
    data:
      config: string
      name: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the BillTheme.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» config body string false A string containing settings for the BillTheme.
    »» name body string false Name of the BillTheme.

    Detailed descriptions

    »» config: A string containing settings for the BillTheme. Values set in this string will apply to any bill using this BillTheme, unless overridden by the bill.

    Available settings within this string: - "show": Values set under this key determine how/if sections will appear on a bill. - "text": Values set under this key determine what will display if the section is shown. - "css": Values set under this key determine CSS rules for sections on a bill.

    Available settings under "show": - "client_account": Can be set to "hidden", "details", or "summary" to control the display and content of this section. - "client_account_details_balance_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_include_matter_transfers": Can be set to true/false to toggle displaying this section. - "client_account_matter_date_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_matter_details_description_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_matter_title_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_matter_type_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_only_bill_matters": Can be set to true/false to toggle displaying this section. - "client_account_other_matters": Can be set to true/false to toggle displaying this section. - "client_account_payments_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_receipts_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_account_summary_balance_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "client_justification": Can be set to "center", "left", or "right" to control the justification of this section. - "client_operating_account_omit_balance": Can be set to true/false to toggle displaying this section. - "clio_payments_amount_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_amount_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_date_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_date_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_note_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_note_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_reference_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_reference_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_status_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "clio_payments_status_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "draft_watermark": Can be set to true/false to toggle displaying a draft watermark. Will only affect bills in draft. - "envelope_friendly": Can be set to true/false to toggle size styling for the bill. - "firm_address": Can be set to true/false to toggle displaying this section. - "firm_justification": Can be set to "center", "left", or "right" to control the justification of this section. - "firm_title": Can be set to true/false to toggle displaying this section. - "footer_invoice_memo": Can be set to true/false to toggle displaying this section. - "footer_invoice_payable": Can be set to true/false to toggle displaying this section. - "footer_justification": Can be set to "center", "left", or "right" to control the justification of this section. - "footer_page_numbers": Can be set to true/false to toggle displaying this section. - "header_invoice_issued_date": Can be set to true/false to toggle displaying this section. - "header_invoice_number": Can be set to true/false to toggle displaying this section. - "header_on_first_page": Can be set to true/false to toggle displaying this section. - "interest_date": Can be set to true/false to toggle displaying this section. - "interest_date_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_date_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_description": Can be set to true/false to toggle displaying this section. - "interest_details_description": Can be set to true/false to toggle displaying this section. - "interest_details_description_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_details_description_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_details_description_new_line": Can be set to true/false to toggle displaying a interest descriptions on a new line. - "interest_headings_order": Should be set to an array that contains the values: ["interest_type"," interest_date", "interest_details_description", "interest_total"] in the order you would like the sections to display on your bills. - "interest_total": Can be set to true/false to toggle displaying this section. - "interest_total_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_total_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_totals_subtotal": Can be set to true/false to toggle displaying this section. - "interest_type": Can be set to true/false to toggle displaying this section. - "interest_type_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "interest_type_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "invoice_information_due_date": Can be set to true/false to toggle displaying this section. - "invoice_information_invoice_number": Can be set to true/false to toggle displaying this section. - "invoice_information_issue_date": Can be set to true/false to toggle displaying this section. - "invoice_title": Can be set to true/false to toggle displaying this section. - "logo": Can be set to true/false to toggle displaying this section. - "logo_justification": Can be set to "center", "left", or "right" to control the justification of this section. - "matter_attorney_display": Can be set to "name" or "initials" to control the content shown in this section. - "matter_attorney_initials": Can be set to true/false to toggle displaying this section. - "matter_attorney_initials_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_attorney_initials_expenses": Can be set to true/false to toggle displaying this section. - "matter_attorney_initials_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_attorney_initials_products": Can be set to true/false to toggle displaying this section. - "matter_attorney_summary_position_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_attorney_summary_time_keeper_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_client_ref": Can be set to true/false to toggle displaying this section. - "matter_date": Can be set to true/false to toggle displaying this section. - "matter_date_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_date_expenses": Can be set to true/false to toggle displaying this section. - "matter_date_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_date_products": Can be set to true/false to toggle displaying this section. - "matter_date_trust": Can be set to true/false to toggle displaying this section. - "matter_description": Can be set to true/false to toggle displaying this section. - "matter_details_description": Can be set to true/false to toggle displaying this section. - "matter_details_description_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_details_description_expenses": Can be set to true/false to toggle displaying this section. - "matter_details_description_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_details_description_new_line": Can be set to true/false to toggle displaying a matter descriptions on a new line. - "matter_details_description_products": Can be set to true/false to toggle displaying this section. - "matter_details_description_trust": Can be set to true/false to toggle displaying this section. - "matter_heading_justification": Can be set to "center", "left", or "right" to control the justification of this section. - "matter_headings_order": Should be set to an array that contains the values: ["matter_type", "matter_attorney_initials", "matter_date", "matter_details_description", "matter_quantity", "matter_rate", "matter_line_item_discount", "matter_total", "matter_total_with_tax", "matter_tax"] in the order you would like the sections to display on your bills. - "matter_headings_order_expenses": Should be set to an array that contains the values: ["matter_type", "matter_attorney_initials", "matter_date", "matter_details_description", "matter_quantity", "matter_rate", "matter_line_item_discount", "matter_total", "matter_total_with_tax", "matter_tax"] in the order you would like the sections to display on your bills. - "matter_headings_order_products": Should be set to an array that contains the values: ["matter_type", "matter_attorney_initials", "matter_date", "matter_details_description", "matter_quantity", "matter_rate", "matter_line_item_discount", "matter_total", "matter_total_with_tax", "matter_tax"] in the order you would like the sections to display on your bills. - "matter_headings_order_trust": Should be set to an array that contains the values: ["matter_date", "matter_details_description", "matter_total"] in the order you would like the sections to display on your bills. - "matter_individual_payments": Can be set to true/false to toggle displaying this section. - "matter_line_item_discount": Can be set to true/false to toggle displaying this section. - "matter_line_item_discount_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_line_item_discount_expenses": Can be set to true/false to toggle displaying this section. - "matter_line_item_discount_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_line_item_discount_products": Can be set to true/false to toggle displaying this section. - "matter_line_item_discount_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_line_items_activity_descriptions": Can be set to true/false to toggle displaying this section. - "matter_number": Can be set to true/false to toggle displaying this section. - "matter_quantity": Can be set to true/false to toggle displaying this section. - "matter_quantity_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_quantity_expenses": Can be set to true/false to toggle displaying this section. - "matter_quantity_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_quantity_products": Can be set to true/false to toggle displaying this section. - "matter_quantity_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_rate": Can be set to true/false to toggle displaying this section. - "matter_rate_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_rate_expenses": Can be set to true/false to toggle displaying this section. - "matter_rate_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_rate_products": Can be set to true/false to toggle displaying this section. - "matter_rate_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_separate_line_items": Can be set to true/false to toggle displaying this section. - "matter_show_amount_with_percentage": Can be set to true/false to toggle displaying this section. - "matter_tax_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_tax_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_total": Can be set to true/false to toggle displaying this section. - "matter_total_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_total_expenses": Can be set to true/false to toggle displaying this section. - "matter_total_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_total_products": Can be set to true/false to toggle displaying this section. - "matter_total_text_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_total_trust": Can be set to true/false to toggle displaying this section. - "matter_total_with_tax_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_total_with_tax_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_totals_subtotal": Can be set to true/false to toggle displaying this section. - "matter_totals_subtotal_line_item_discount": Can be set to true/false to toggle displaying this section. - "matter_type": Can be set to true/false to toggle displaying this section. - "matter_type_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_type_expenses": Can be set to true/false to toggle displaying this section. - "matter_type_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "matter_type_products": Can be set to true/false to toggle displaying this section. - "payment_profile_discount": Can be set to true/false to toggle displaying this section. Even if set to true, this section will not be shown if the bill does not have an early payment discount. - "payment_profile_grace_period": Can be set to true/false to toggle displaying this section. Even if set to true, this section will not be shown if the bill does not have a grace period. - "payment_profile_interest": Can be set to true/false to toggle displaying this section. Even if set to true, this section will not be shown if the bill does not have a recurring interest charge. - "payment_profile_no_grace_period": Can be set to true/false to toggle displaying this section. Even if set to true, this section will not be shown if the bill has a grace period. - "show_clio_payments": Can be set to true/false to toggle displaying this section. - "soa_title": Can be set to true/false to toggle displaying this section. - "statement_of_accounts": Can be set to true/false to toggle displaying this section. - "statement_of_accounts_amount_due_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_amount_due_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_balance_due_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_balance_due_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_details": Can be set to true/false to toggle displaying this section. - "statement_of_accounts_due_on_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_due_on_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_include_trust": Can be set to true/false to toggle displaying this section. - "statement_of_accounts_invoice_number_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_invoice_number_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_note": Can be set to true/false to toggle displaying this section. Even if set to true, this section will not be shown if "statement_of_accounts_summary" is "hidden". - "statement_of_accounts_payments_received_body_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_payments_received_header_alignment": Can be set to "center", "left", or "right" to control the alignment of this section. - "statement_of_accounts_summary": Can be set to "hidden", "above", or "below" to control the location of this section. This will determine if the statements of account section on the bill is displayed, and if it displays above or below the line items. - "statement_of_accounts_summary_detail": Can be set to "simple", "with_payment", or "with_account_balance" to control the values shown in this section. - "statement_of_accounts_summary_only_bill_matters": Can be set to true/false to control the values shown in this section. - "void_watermark": Can be set to true/false to toggle displaying a void watermark. Will only affect bills that have been void.

    Available settings under "text", each of these can be set to the text you would like to display when they are shown, some of these fields allow substituting values with codes wrapped in curly braces: - "address_email" - "address_fax" - "address_phone" - "attorney_summary_position" - "attorney_summary_time_keeper" - "client_account_account" - "client_account_balance" - "client_account_payments" - "client_account_receipts" - "client_account_total_balance" - "clio_payments_amount" - "clio_payments_date" - "clio_payments_note" - "clio_payments_reference" - "clio_payments_status" - "clio_payments_title" - "clio_payments_total" - "discount_early_payment_balance_owing_text" - "discount_early_payment_end_date_text" - "discount_early_payment_text" - "discount_early_payment_total_text" - "footer_invoice_memo" - {{billing_setting_memo}}" can be used to reference your billing settings memo. - {{bill_memo}} can be used to reference your bills memo. - "footer_invoice_payable" - {{firm_name}} can be used to reference your firms name. - "footer_page" - "footer_page_of" - "grand_total_text" - {{same_as_total_heading}} can be used to reference the value in "text" => "matter_total_text" - "interest_date_text" - "interest_details_description_text" - "interest_subtotal_text" - "interest_text" - "interest_title_text" - "interest_total_text" - "interest_type_text" - "invoice_due_date_text" - "invoice_information_due_date_receipt_text" - "invoice_issued_date_text" - "invoice_lc" - "invoice_number_text" - "invoice_purchase_order_text" - "invoice_title" - "matter_attorney_initials_text" - "matter_balance_owing_text" - "matter_client_ref" - {{client_ref_num}}" can be used to reference the matters client reference. - "matter_credit_note_text" - "matter_date_text" - "matter_details_description_text" - "matter_discount_text" - "matter_expense_subtotal_text" - "matter_expense_text" - "matter_expense_title_text" - "matter_grand_total_text" - {{same_as_total_heading}} can be used to reference the value in "text" => "matter_total_text" - "matter_line_item_discount_expenses_text" - "matter_line_item_discount_products_text"client_address_custom" - "matter_line_item_discount_subtotal_text" - "matter_line_item_discount_text" - "matter_payment_text" - "matter_product_subtotal_text" - "matter_product_text" - "matter_product_title_text" - "matter_quantity_expenses_text" - "matter_quantity_products_text" - "matter_quantity_subtotal_text" - "matter_quantity_text" - "matter_quantity_total_text" - "matter_rate_expenses_text" - "matter_rate_products_text" - "matter_rate_text" - "matter_refund_text" - "matter_service_subtotal_text" - "matter_service_text" - "matter_service_title_text" - "matter_subtotal_text" - "matter_tax_text" - "matter_title" - "matter_total_text" - "matter_total_with_tax_text" - "matter_trust_line_items_title_text" - "matter_trust_text" - "matter_type_text" - "payment_profile" - "payment_profile_discount" - {{discount_rate}} can be used to reference the bills discount rate. - {{interest_rate}} can be used to reference the bills interest rate. - {{interest_type}} can be used to reference the bills interest type. - {{grace_period}} can be used to reference the grace period for the bill. - {{discount_period}} can be used to reference the discount period for the bill. - {{interest_period}} can be used to reference the interest period for the bill. - "payment_profile_grace_period" - {{discount_rate}} can be used to reference the bills discount rate. - {{interest_rate}} can be used to reference the bills interest rate. - {{interest_type}} can be used to reference the bills interest type. - {{grace_period}} can be used to reference the grace period for the bill. - {{discount_period}} can be used to reference the discount period for the bill. - {{interest_period}} can be used to reference the interest period for the bill. - "payment_profile_interest" - {{discount_rate}} can be used to reference the bills discount rate. - {{interest_rate}} can be used to reference the bills interest rate. - {{interest_type}} can be used to reference the bills interest type. - {{grace_period}} can be used to reference the grace period for the bill. - {{discount_period}} can be used to reference the discount period for the bill. - {{interest_period}} can be used to reference the interest period for the bill. - "payment_profile_no_grace_period" - {{discount_rate}} can be used to reference the bills discount rate. - {{interest_rate}} can be used to reference the bills interest rate. - {{interest_type}} can be used to reference the bills interest type. - {{grace_period}} can be used to reference the grace period for the bill. - {{discount_period}} can be used to reference the discount period for the bill. - {{interest_period}} can be used to reference the interest period for the bill. - "remittance_checks" - "remittance_checks_label" - "remittance_checks_title" - "remittance_note" - {{bill_number}} can be used to reference the bills number. - "remittance_note_soa" - "remittance_title" - "remittance_wire_bank_account" - "remittance_wire_bank_account_label" - "remittance_wire_bank_name" - "remittance_wire_bank_name_label" - "remittance_wire_bank_routing" - "remittance_wire_bank_routing_label" - "remittance_wire_bank_swift" - "remittance_wire_bank_swift_label" - "remittance_wire_title" - "soa_title" - "statement_of_accounts_amount" - "statement_of_accounts_amount_in_trust" - "statement_of_accounts_amount_on_account" - "statement_of_accounts_balance" - "statement_of_accounts_current_invoice" - "statement_of_accounts_details_title" - "statement_of_accounts_due_on" - "statement_of_accounts_invoice_number" - "statement_of_accounts_new_charges" - "statement_of_accounts_note" - {{firm_name}} can be used to reference your firms name. - "statement_of_accounts_original_invoice_number" - "statement_of_accounts_other_interest_invoices" - "statement_of_accounts_other_invoices" - "statement_of_accounts_outstanding_balance" - "statement_of_accounts_payments" - "statement_of_accounts_summary_title" - "statement_of_accounts_total_balance" - "statement_of_accounts_total_credit" - "statement_of_accounts_total_outstanding_balance" - "trust_request_adjustments_title_text" - "trust_request_lc" - "trust_request_number_text" - "trust_request_title" - "trust_request_total_text"

    Available settings under "css", each of these has nested values that can be set to apply CSS rules to bills: - "client" - "color": Color used in the client section. Value is in 'Hex'. - "font-family": Font used in client section. - "font-size": Font size in client section. Value is in 'em'. - "client_address" - "margin-bottom": Bottom margin size for the client address. Value is in 'em'. - "firm_title" - "margin-bottom": Bottom margin height for the bills firm title. Value is in 'em'. - "color": Color for the bills firm title section. Value is in 'Hex'. - "font-family": Font used for text in the firm title. - "font-size": Font size for the bills firm title. Value is in 'em'. - "border-color": Border color property for the firm title on a bill. Value is in 'Hex'. - "border-style": Border style property for the firm title on a bill. Accepts standard CSS options for 'border-style' property. - "border-width": Border width property for table rows on a bill. Accepts standard CSS options for 'border-width' property. - "background-color": Background color for the firm title on a bill. Value is in 'Hex'. - "header" - "margin-bottom": Bottom margin size for the bill header. Value is in 'em'. - "inside_margins" - "font-family": Primary font used on the bill. - "font-size": Primary font size used for bill. - "color": Primary font used on the bill, default is "Arial". - "invoice_title" - "color": Color used in the invoice title section. Value is in 'Hex'. - "font-family": Font used in invoice title section. - "font-size": Font size in invoice title section. Value is in 'em'. - "logo_img" - "height": Height for the bills logo image. Value is in 'em'. - "margin-top": Top margin height for the bills logo image. Value is in 'em'. - "margin-bottom": Bottom margin height for the bills logo image. Value is in 'em'. - "matter_description" - "margin-top": Top margin size for matter description section. Value is in 'em'. - "color": Color used in the matter description section. Value is in 'Hex'. - "font-family": Font used in matter description section. - "font-size": Font size in matter description section. Value is in 'em'. - "matter_number" - "color": Color used in the matter number section. Value is in 'Hex'. - "font-family": Font used in matter number section. - "font-size": Font size in matter number section. Value is in 'em'. - "page_margins" - "margin-left": Left margin size for the bill. Value is in 'em'. - "margin-right": Right margin size for the bill. Value is in 'em'. - "margin-top": Top margin size for the bill. Value is in 'em'. - "margin-bottom": Bottom margin size for the bill. Value is in 'em'. - "size": Size property for the bill, default is "US-Letter". - "remittance_title" - "color": Color used in the remittance title section. Value is in 'Hex'. - "font-family": Font used in remittance title section. - "font-size": Font size in remittance title section. Value is in 'em'. - "background-color": Background color for the remittance title section on a bill. Value is in 'Hex'. - "border-color": Border color property for the remittance title section on a bill. Value is in 'Hex'. - "border-style": Border style property for the remittance title section on a bill. Accepts standard CSS options for 'border-style' property. - "border-width": Border width property for the remittance title section on a bill. Accepts standard CSS options for 'border-width' property. - "statement_of_accounts_title" - "color": Color used in the statement of accounts section. Value is in 'Hex'. - "font-family": Font used in statement of accounts section. - "font-size": Font size in statement of accounts section. Value is in 'em'. - "background-color": Background color for the statement of accounts section on a bill. Value is in 'Hex'. - "border-color": Border color property for the statement of accounts section on a bill. Value is in 'Hex'. - "border-style": Border style property for the statement of accounts section on a bill. Accepts standard CSS options for 'border-style' property. - "border-width": Border width property for the statement of accounts section on a bill. Accepts standard CSS options for 'border-width' property. - "table_even_line" - "background-color": Background color for even table rows. Value is in 'Hex'. - "table_h4" - "background-color": Background color for table headers. Value is in 'Hex'. - "table_line" - "border-bottom-width": Bottom border width for table rows. Value is in 'px'. - "border-bottom-style": Bottom border style property for table rows on a bill. Accepts standard CSS options for 'border-style' property. - "border-bottom-color": Bottom border color property for table rows on a bill. Value is in 'Hex'. - "table_odd_line" - "background-color": Background color for odd table rows. Value is in 'Hex'.

    A config with samples of each type of option is shown below: config = { "show": { "statement_of_accounts_summary": "left" "statement_of_accounts_note": true, "footer_invoice_payable": true, "footer_invoice_memo": true, "payment_profile_no_grace_period": true, "payment_profile_grace_period": true, "payment_profile_discount": true, "payment_profile_interest": true, "interest_headings_order": ["interest_type"," interest_date", "interest_details_description", "interest_total"] }, "text": { "statement_of_accounts_note": "Please make all amounts payable to: {{firm_name}}", "footer_invoice_payable": "Please make all amounts payable to: {{firm_name}}", "footer_invoice_memo": "{{bill_memo}}", "payment_profile_no_grace_period": "Payment is due upon receipt.", "payment_profile_grace_period": "Please pay within {{grace_period}}.", "payment_profile_discount": "{{discount_rate}}% discount will be applied if payment is received within {{discount_period}}.", "payment_profile_interest": "{{interest_rate}}% {{interest_type}} annual interest will be charged every {{interest_period}}.", }, "css": { "statement_of_accounts_title": { "color": "#00cc00", "font-family": "Times New Roman", "font-size": "0.875em", "background-color": "#ccff99", "border-color": "#0033ff", "border-style": "dotted", "border-width": "thick" }, "remittance_title": { "color": "#00ff00", "background-color": "None", "border-color": "#0033cc", "border-width": "medium", "border-style": "dotted", "font-family": "Arial", "font-size": "1.5em" } } }

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BillThemeShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Billable Clients

    Users can view all Billable Clients, or clients with outstanding Bills, on the Billable Clients page, located under the Bills tab.

    BillableClient#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/billable_clients.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/billable_clients.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/billable_clients.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/billable_clients.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/billable_clients.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/billable_clients.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/billable_clients.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /billable_clients.json

    Return the data for all BillableClients

    Outlines the parameters, optional and required, used when requesting the data for all BillableClients

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    client_id query integer(int32) false The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the BillableClient records with the matching property.
    custom_field_values query string false Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or,
    end_date query string(date) false Filter BillableClient records to those that have Matters with unbilled Activities on or before this date (Expects an ISO-8601 date).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of BillableClient records to be returned. Limit can range between 1 and 25. Default: 25.
    matter_id query integer(int32) false The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the BillableClient records with the matching property.
    originating_attorney_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a BillableClient. The list will be filtered to include only the BillableClient records with the matching property.
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for display_number or number or description matching a given string.
    responsible_attorney_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a BillableClient. The list will be filtered to include only the BillableClient records with the matching property.
    start_date query string(date) false Filter BillableClient records to those that have Matters with unbilled Activities on or after this date (Expects an ISO-8601 date).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    custom_field_values: Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string. The key for the custom field value filter is the custom_field.id. e.g. custom_field_values[12345] If an operator is used for a type that does not support it, an 400 Bad Request is returned.

    Supported operators: * checkbox, contact, matter, picklist : =

    e.g. ?custom_field_values[1]=42

    e.g. ?custom_field_values[1]=>=105.4

    e.g. ?custom_field_values[1]=url_encoded

    Multiple conditions for the same custom field:

    If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values. e.g. ?custom_field_values[1]=[<=50, >=45]

    Enumerated Values

    Parameter Value
    custom_field_values =
    custom_field_values <
    custom_field_values >
    custom_field_values <=
    custom_field_values >=

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BillableClientList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Billable Matters

    Users can see all Matters that have outstanding bills attached to them by filtering out all non-billable Matters under the Matters tab.

    Users can disable billing for certain Matters. They can still enter Activities on these Matters, but those Activities will not appear in the Bills page.

    BillableMatter#ids

    Code samples

    # You can also use wget
    curl -X GET /api/v4/billable_matters/ids.json?client_id=0 \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/billable_matters/ids.json?client_id=0 HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/billable_matters/ids.json',
      method: 'get',
      data: '?client_id=0',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/billable_matters/ids.json?client_id=0',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/billable_matters/ids.json',
      params: {
      'client_id' => 'integer(int32)'
    }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/billable_matters/ids.json', params={
      'client_id': '0'
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/billable_matters/ids.json?client_id=0");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /billable_matters/ids.json

    Returns the unique identifiers of all BillableMatter

    This data is retrieved asynchronously

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    client_id query integer(int32) true The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the BillableMatter records with the matching property.
    custom_field_values query string false Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or,
    end_date query string(date) false Filter BillableMatter records to those that have matters with unbilled activities on or before this date (Expects an ISO-8601 date).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of BillableMatter records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the BillableMatter records with the matching property.
    originating_attorney_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a BillableMatter. The list will be filtered to include only the BillableMatter records with the matching property.
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for display_number or number or description matching a given string.
    responsible_attorney_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a BillableMatter. The list will be filtered to include only the BillableMatter records with the matching property.
    start_date query string(date) false Filter BillableMatter records to those that have matters with unbilled activities on or after this date (Expects an ISO-8601 date).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    custom_field_values: Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string. The key for the custom field value filter is the custom_field.id. e.g. custom_field_values[12345] If an operator is used for a type that does not support it, an 400 Bad Request is returned.

    Supported operators: * checkbox, contact, matter, picklist : =

    e.g. ?custom_field_values[1]=42

    e.g. ?custom_field_values[1]=>=105.4

    e.g. ?custom_field_values[1]=url_encoded

    Multiple conditions for the same custom field:

    If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values. e.g. ?custom_field_values[1]=[<=50, >=45]

    Enumerated Values

    Parameter Value
    custom_field_values =
    custom_field_values <
    custom_field_values >
    custom_field_values <=
    custom_field_values >=

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BillableMatterShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    BillableMatter#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/billable_matters.json?client_id=0 \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/billable_matters.json?client_id=0 HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/billable_matters.json',
      method: 'get',
      data: '?client_id=0',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/billable_matters.json?client_id=0',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/billable_matters.json',
      params: {
      'client_id' => 'integer(int32)'
    }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/billable_matters.json', params={
      'client_id': '0'
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/billable_matters.json?client_id=0");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /billable_matters.json

    Return the data for all BillableMatters

    Outlines the parameters, optional and required, used when requesting the data for all BillableMatters

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    client_id query integer(int32) true The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the BillableMatter records with the matching property.
    custom_field_values query string false Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or,
    end_date query string(date) false Filter BillableMatter records to those that have matters with unbilled activities on or before this date (Expects an ISO-8601 date).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of BillableMatter records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the BillableMatter records with the matching property.
    originating_attorney_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a BillableMatter. The list will be filtered to include only the BillableMatter records with the matching property.
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for display_number or number or description matching a given string.
    responsible_attorney_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a BillableMatter. The list will be filtered to include only the BillableMatter records with the matching property.
    start_date query string(date) false Filter BillableMatter records to those that have matters with unbilled activities on or after this date (Expects an ISO-8601 date).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    custom_field_values: Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string. The key for the custom field value filter is the custom_field.id. e.g. custom_field_values[12345] If an operator is used for a type that does not support it, an 400 Bad Request is returned.

    Supported operators: * checkbox, contact, matter, picklist : =

    e.g. ?custom_field_values[1]=42

    e.g. ?custom_field_values[1]=>=105.4

    e.g. ?custom_field_values[1]=url_encoded

    Multiple conditions for the same custom field:

    If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values. e.g. ?custom_field_values[1]=[<=50, >=45]

    Enumerated Values

    Parameter Value
    custom_field_values =
    custom_field_values <
    custom_field_values >
    custom_field_values <=
    custom_field_values >=

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BillableMatterList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Bills

    Bills are statements of what a user’s client owes for their services over a particular billing period, including legal fees, expenses, and taxes.

    Users customize, preview, edit, and approve bills before sending them to a client.

    Support Link

    Bill#preview

    Code samples

    # You can also use wget
    curl -X GET /api/v4/bills/{id}/preview.json \
      -H 'Accept: */*'
    
    
    
    GET /api/v4/bills/{id}/preview.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    
    
    
    var headers = {
      'Accept':'*/*'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bills/{id}/preview.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*'
    
    
    };
    
    
    fetch('/api/v4/bills/{id}/preview.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*'
    }
    
    
    result = RestClient.get '/api/v4/bills/{id}/preview.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*'
    }
    
    
    r = requests.get('/api/v4/bills/{id}/preview.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bills/{id}/preview.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /bills/{id}/preview.json

    Returns the pre-rendered html for the Bill

    This endpoint returns a pre-rendered HTML object that you can use to view a preview of your bills. The HTML provided contains all of the CSS rules it requires to show the bill correctly, as well as the DOCTYPE setting it requires. It's best to use an iframe, or similar object, to render the results of this endpoint. This endpoint does not support bulk actions.

    Parameters

    Parameter In Type Required Description
    id path integer(int32) true The unique identifier for the Bill.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Bill#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/bills.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/bills.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bills.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/bills.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/bills.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/bills.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bills.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /bills.json

    Return the data for all Bills

    Outlines the parameters, optional and required, used when requesting the data for all Bills

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    client_id query integer(int32) false The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the Bill records with the matching property.
    created_since query string(date-time) false Filter Bill records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    custom_field_values query string false Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or,
    due_after query string(date) false Filter Bill records to those that have a due_date after the one provided (Expects an ISO-8601 date).
    due_at query string(date) false Filter Bill records to those that have a specific due_date (Expects an ISO-8601 date).
    due_before query string(date) false Filter Bill records to those that have a due_date before the one provided (Expects an ISO-8601 date).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter Bill records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of Bill records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. Use the keyword null to match those without a Bill. The list will be filtered to include only the Bill records with the matching property.
    order query string false Orders the Bill records by the given field. Default: id(asc).
    originating_attorney_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a Bill. The list will be filtered to include only the Bill records with the matching property.
    page_token query integer(int32) false A token specifying which page to return.
    query query integer(int32) false Allows matching search on invoice number.
    responsible_attorney_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a Bill. The list will be filtered to include only the Bill records with the matching property.
    state query string false Filter Bill records to those in a given state.
    status query string false Filter Bill records to those with particular payment status.
    type query string false Filter Bill records to those of a specific type.
    updated_since query string(date-time) false Filter Bill records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    custom_field_values: Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string. The key for the custom field value filter is the custom_field.id. e.g. custom_field_values[12345] If an operator is used for a type that does not support it, an 400 Bad Request is returned.

    Supported operators: * checkbox, contact, matter, picklist : =

    e.g. ?custom_field_values[1]=42

    e.g. ?custom_field_values[1]=>=105.4

    e.g. ?custom_field_values[1]=url_encoded

    Multiple conditions for the same custom field:

    If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values. e.g. ?custom_field_values[1]=[<=50, >=45]

    Enumerated Values

    Parameter Value
    custom_field_values =
    custom_field_values <
    custom_field_values >
    custom_field_values <=
    custom_field_values >=
    order id(asc)
    order id(desc)
    order due_at(asc)
    order due_at(desc)
    order issued_at(asc)
    order issued_at(desc)
    order client_name(asc)
    order client_name(desc)
    order matter_display_number(asc)
    order matter_display_number(desc)
    order balance(asc)
    order balance(desc)
    order number(asc)
    order number(desc)
    state draft
    state awaiting_approval
    state awaiting_payment
    state paid
    state void
    state deleted
    status all
    status overdue
    type revenue
    type trust

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BillList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Bill#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/bills/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/bills/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bills/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/bills/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/bills/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/bills/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bills/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /bills/{id}.json

    Return the data for a single Bill

    Outlines the parameters, optional and required, used when requesting the data for a single Bill

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Bill.
    navigation.next query integer(int32) false The id of the next Bill available for viewing
    navigation.previous query integer(int32) false The id of the previous Bill available for viewing

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BillShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Bill#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/bills/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/bills/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bills/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "bill_theme": {
          "id": 0
        },
        "config": "string",
        "currency_id": 0,
        "discount": {
          "rate": 0,
          "type": "percentage",
          "note": "string"
        },
        "due_at": "2018-03-22",
        "interest": {
          "rate": 0,
          "type": "simple",
          "period": 0
        },
        "issued_at": "2018-03-22",
        "memo": "string",
        "number": "string",
        "purchase_order": "string",
        "secondary_tax_rate": 0,
        "state": "draft",
        "subject": "string",
        "tax_rate": 0,
        "use_grace_period": true
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/bills/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/bills/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/bills/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bills/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /bills/{id}.json

    Update a single Bill

    Outlines the parameters and data fields used when updating a single Bill

    Body parameter

    {
      "data": {
        "bill_theme": {
          "id": 0
        },
        "config": "string",
        "currency_id": 0,
        "discount": {
          "rate": 0,
          "type": "percentage",
          "note": "string"
        },
        "due_at": "2018-03-22",
        "interest": {
          "rate": 0,
          "type": "simple",
          "period": 0
        },
        "issued_at": "2018-03-22",
        "memo": "string",
        "number": "string",
        "purchase_order": "string",
        "secondary_tax_rate": 0,
        "state": "draft",
        "subject": "string",
        "tax_rate": 0,
        "use_grace_period": true
      }
    }
    
    data:
      bill_theme:
        id: 0
      config: string
      currency_id: 0
      discount:
        rate: 0
        type: percentage
        note: string
      due_at: '2018-03-22'
      interest:
        rate: 0
        type: simple
        period: 0
      issued_at: '2018-03-22'
      memo: string
      number: string
      purchase_order: string
      secondary_tax_rate: 0
      state: draft
      subject: string
      tax_rate: 0
      use_grace_period: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Bill.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» bill_theme body object false No description
    »»» id body integer(int32) false The unique identifier of the bill theme applied to the Bill.
    »» config body string false A string containing bill theme settings for the Bill preview that are specific to this Bill.
    »» currency_id body integer(int32) false ID of the currency applied to the Bill.
    »» discount body object false No description
    »»» rate body number(double) false Discount amount for the Bill. This can either be a percentage or monetary value, this is determined by the discount[type].
    »»» type body string false The type of discount you are applying to your Bill with the discount[rate].
    »»» note body string false A note for your Bill's discount.
    »» due_at body string(date) false Date the Bill is due. If use_grace_period is true, this field is ignored.
    »» interest body object false No description
    »»» rate body number(double) false Interest amount for the Bill as percentage.
    »»» type body string false The type of interest you are applying to your Bill with the interest[rate].
    »»» period body integer(int32) false The interest period for how frequently your Bill will charge interest.
    »» issued_at body string(date) false Date the Bill was issued.
    »» memo body string false Memo for the Bill.
    »» number body string false Bill's number.
    »» purchase_order body string false Purchase order information for the Bill.
    »» secondary_tax_rate body number(double) false Secondary tax rate as percentage for the Bill.
    »» state body string false Bill's state.
    »» subject body string false Subject details for the Bill.
    »» tax_rate body number(double) false Tax rate as percentage for the Bill
    »» use_grace_period body boolean false When true, sets the bill's due date based on the client's grace period. This setting overrides the due_at parameter.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    »» config: A string containing bill theme settings for the Bill preview that are specific to this Bill.

    To learn more about available options that you can set in this field, refer to the bill themes documentation.

    Values set in this string will override the bill theme settings when displaying this Bill. Any values not present in this string will default to using the settings present in the bill theme for this Bill, or to the default settings for those values if it is also undefined in the bill theme.

    Enumerated Values

    Parameter Value
    »»» type percentage
    »»» type money
    »»» type simple
    »»» type compound
    »» state draft
    »» state awaiting_approval
    »» state awaiting_payment
    »» state paid
    »» state void
    »» state deleted

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BillShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Bill#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/bills/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/bills/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bills/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/bills/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/bills/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/bills/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bills/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /bills/{id}.json

    Delete or void a Bill

    This endpoint will transition a bill to either its deleted or voided state. A bill can only be deleted or voided if it has no payments recorded and its current state is one of the following: * Draft * Pending Approval * Awaiting Payment

    A bill will automatically be moved to a deleted or void state based on its current state. The mappings for this are: * Draft -> Deleted * Pending Approval -> Deleted * Awaiting Payment -> Void

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Bill.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Bulk Actions

    API v4 will allow bulk actions for most endpoints. To use bulk actions: 1. Make a request to the action with an X-BULK header with the value true. The response will always be a 202 Accepted. 2. Poll the URL provided in the Location header of the response. This URL is for the Bulk Actions endpoint. 3. Once the action is complete, polling the URL will return a 303 See Other response. 4. Download the response from URL in the Location header of the 303 See other response.

    Note: For some bulk actions the parameter format may change slightly

    List

    The primary use case of using Bulk Actions for a listing endpoint is to remove the need for paging. This is useful if you require a full list of records for situations such as: syncing a full set of data, or creating a report based off the fields and request parameters.

    The limit, and the page_token parameters are ignored, otherwise the request parameters are the same as a non-bulk request. The eventual response that is received from step 4 above might look something like:

      {
         data: [
           { status: 200, data: [ { id: 1 }, { id: 2 } ] }
         ]
         status: 'completed', requested: 1, performed: 1
      }
    

    Create

    The request parameter format changes slightly for this action. Using contacts as an example, creating multiple records would look something like: ```json Request POST /api/v4/contacts.json { data: [ { first_name: "Foo", type: "Person" }, { type: "Person" } ], fields: "id,first_name" }

    Eventual Response { data: [ { status: 200, data: { id: 1, first_name: "Foo" } }, { status: 422, error: { message: "At least one of first name or last name must be provided", type: "RecordInvalid" } }, ], status: 'completed', requested: 2, performed: 2 } ```

    Update

    The request parameter format changes slightly for this action. Using contacts as an example, updating multiple records would look something like: ```json Request PATCH /api/v4/contacts.json { data: [ { id: 1, first_name: "Foo" }, { id: 2, type: "Invalid" } ], fields: "id,first_name" }

    Eventual Response { data: [ { status: 200, data: { id: 1, first_name: "Foo" } }, { status: 400, error: { message: "type must be one of the follow: 'Company', or 'Person'", type: "ArgumentError" } }, ], status: 'completed', requested: 2, performed: 2 } ```

    Destroy

    The request parameter format changes slightly for this action. Using contacts as an example, destroying multiple records would look something like: ```json Request DELETE /api/v4/contacts.json { data: [ { id: 1 }, { id: 2 } ] }

    Eventual Response { data: [ { status: 202 }, { status: 202 }, ], status: 'completed', requested: 2, performed: 2 } ```

    BulkAction#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/bulk_actions/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/bulk_actions/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/bulk_actions/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/bulk_actions/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/bulk_actions/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/bulk_actions/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/bulk_actions/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /bulk_actions/{id}.json

    Return the data for a single BulkAction

    If the bulk action is complete, then it will either a redirect to the completed job otherwise the current status of the incomplete job can be retrieved.

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the BulkAction.
    ignore_redirect query boolean false Whether or not the request should ignore the automatic redirect once the BulkAction is complete.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BulkActionShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Calendar Entries

    Calendar Entries are used to track appointments or deadlines. Users can view Calendar Entries on any Calendar that they have “Viewer” or “Editor” permission for. Users can create Calendar Entries on any Calendar that they have “Editor” permission for.

    Calendar Update/Deletion Best Practices

    Support Link

    CalendarEntry#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/calendar_entries.json?calendar_id=0 \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/calendar_entries.json?calendar_id=0 HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/calendar_entries.json',
      method: 'get',
      data: '?calendar_id=0',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/calendar_entries.json?calendar_id=0',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/calendar_entries.json',
      params: {
      'calendar_id' => 'integer(int32)'
    }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/calendar_entries.json', params={
      'calendar_id': '0'
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/calendar_entries.json?calendar_id=0");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /calendar_entries.json

    Return the data for all CalendarEntries

    Outlines the parameters, optional and required, used when requesting the data for all CalendarEntries

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    calendar_id query integer(int32) true The unique identifier for a single Calendar. The keyword null is not valid for this field. The list will be filtered to include only the CalendarEntry records with the matching property.
    created_since query string(date-time) false Filter CalendarEntry records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    expanded query boolean false Returns CalendarEntry records in an expanded format.
    external_property_name query string false Filter records to only those with the given external property(s) name set.
    external_property_value query string false Filter records to only those with the given external property(s) value set. Requires external property name as well.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    from query string(date-time) false Filter CalendarEntry records to those that end on or after the provided time (Expects an ISO-8601 timestamp).
    ids[] query integer(int32) false Filter CalendarEntry records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of CalendarEntry records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. Use the keyword null to match those without a CalendarEntry. The list will be filtered to include only the CalendarEntry records with the matching property.
    page_token query integer(int32) false A token specifying which page to return.
    to query string(date-time) false Filter CalendarEntry records to those that begin on or before the provided time (Expects an ISO-8601 timestamp).
    updated_since query string(date-time) false Filter CalendarEntry records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    external_property_name: Filter records to only those with the given external property(s) name set.

    e.g. ?external_property_name=Name

    external_property_value: Filter records to only those with the given external property(s) value set. Requires external property name as well.

    e.g. ?external_property_name=Name&external_property_value=Value

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CalendarEntryList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    CalendarEntry#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/calendar_entries.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/calendar_entries.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/calendar_entries.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "_deleted": "single",
        "all_day": true,
        "attendees": [
          {
            "id": 0,
            "type": "string",
            "_destroy": true
          }
        ],
        "calendar_owner": {
          "id": 0
        },
        "description": "string",
        "end_at": "2018-03-22T20:30:34Z",
        "external_properties": [
          {
            "name": "string",
            "value": "string"
          }
        ],
        "location": "string",
        "matter": {
          "id": 0
        },
        "recurrence_rule": "string",
        "start_at": "2018-03-22T20:30:34Z",
        "summary": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/calendar_entries.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/calendar_entries.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/calendar_entries.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/calendar_entries.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /calendar_entries.json

    Create a new CalendarEntry

    Outlines the parameters and data fields used when creating a new CalendarEntry

    Body parameter

    {
      "data": {
        "_deleted": "single",
        "all_day": true,
        "attendees": [
          {
            "id": 0,
            "type": "string",
            "_destroy": true
          }
        ],
        "calendar_owner": {
          "id": 0
        },
        "description": "string",
        "end_at": "2018-03-22T20:30:34Z",
        "external_properties": [
          {
            "name": "string",
            "value": "string"
          }
        ],
        "location": "string",
        "matter": {
          "id": 0
        },
        "recurrence_rule": "string",
        "start_at": "2018-03-22T20:30:34Z",
        "summary": "string"
      }
    }
    
    data:
      _deleted: single
      all_day: true
      attendees:
        - id: 0
          type: string
          _destroy: true
      calendar_owner:
        id: 0
      description: string
      end_at: '2018-03-22T20:30:34Z'
      external_properties:
        - name: string
          value: string
      location: string
      matter:
        id: 0
      recurrence_rule: string
      start_at: '2018-03-22T20:30:34Z'
      summary: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» _deleted body string false Flag to delete a specific instance of a recurring event.
    »» all_day body boolean false Whether or not the CalendarEntry is for all day.
    »» attendees body [object] false No description
    »»» id body integer(int32) false The unique identifier for a single Attendee associated with the CalendarEntry. The keyword null is not valid for this field. Not required for creating new Attendee, but required for updating or deleting existing ones.
    »»» type body string false The type of attendee (Calendar, Contact)
    »»» _destroy body boolean false Flag to delete a specific attendee.
    »» calendar_owner body object true No description
    »»» id body integer(int32) true The unique identifier for a single Calendar associated with the CalendarEntry. The keyword null is not valid for this field.
    »» description body string false A detailed description of the CalendarEntry.
    »» end_at body string(date-time) true The time the CalendarEntry ends (Expects an ISO-8601 timestamp).
    »» external_properties body [object] false No description
    »»» name body string false The ExternalProperty name.
    »»» value body string false The ExternalProperty value.
    »» location body string false The geographic location of the CalendarEntry.
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the CalendarEntry. Use the keyword null to specify no association.
    »» recurrence_rule body string false Recurrence rule for expanding recurring CalendarEntry. To convert an existing recurring event to a non-recurring event, '' or null are valid values.
    »» start_at body string(date-time) true The time the CalendarEntry starts (Expects an ISO-8601 timestamp).
    »» summary body string true A short summary of the CalendarEntry.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» _deleted single
    »» _deleted future

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created CalendarEntryShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    CalendarEntry#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/calendar_entries/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/calendar_entries/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/calendar_entries/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/calendar_entries/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/calendar_entries/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/calendar_entries/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/calendar_entries/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /calendar_entries/{id}.json

    Return the data for a single CalendarEntry

    Outlines the parameters, optional and required, used when requesting the data for a single CalendarEntry

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the CalendarEntry.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CalendarEntryShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    CalendarEntry#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/calendar_entries/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/calendar_entries/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/calendar_entries/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "_deleted": "single",
        "all_day": true,
        "attendees": [
          {
            "id": 0,
            "type": "string",
            "_destroy": true
          }
        ],
        "calendar_owner": {
          "id": 0
        },
        "description": "string",
        "end_at": "2018-03-22T20:30:34Z",
        "external_properties": [
          {
            "id": 0,
            "name": "string",
            "value": "string",
            "_destroy": true
          }
        ],
        "location": "string",
        "matter": {
          "id": 0
        },
        "recurrence_rule": "string",
        "start_at": "2018-03-22T20:30:34Z",
        "summary": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/calendar_entries/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/calendar_entries/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/calendar_entries/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/calendar_entries/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /calendar_entries/{id}.json

    Update a single CalendarEntry

    Outlines the parameters and data fields used when updating a single CalendarEntry

    Body parameter

    {
      "data": {
        "_deleted": "single",
        "all_day": true,
        "attendees": [
          {
            "id": 0,
            "type": "string",
            "_destroy": true
          }
        ],
        "calendar_owner": {
          "id": 0
        },
        "description": "string",
        "end_at": "2018-03-22T20:30:34Z",
        "external_properties": [
          {
            "id": 0,
            "name": "string",
            "value": "string",
            "_destroy": true
          }
        ],
        "location": "string",
        "matter": {
          "id": 0
        },
        "recurrence_rule": "string",
        "start_at": "2018-03-22T20:30:34Z",
        "summary": "string"
      }
    }
    
    data:
      _deleted: single
      all_day: true
      attendees:
        - id: 0
          type: string
          _destroy: true
      calendar_owner:
        id: 0
      description: string
      end_at: '2018-03-22T20:30:34Z'
      external_properties:
        - id: 0
          name: string
          value: string
          _destroy: true
      location: string
      matter:
        id: 0
      recurrence_rule: string
      start_at: '2018-03-22T20:30:34Z'
      summary: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the CalendarEntry.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» _deleted body string false Flag to delete a specific instance of a recurring event.
    »» all_day body boolean false Whether or not the CalendarEntry is for all day.
    »» attendees body [object] false No description
    »»» id body integer(int32) false The unique identifier for a single Attendee associated with the CalendarEntry. The keyword null is not valid for this field. Not required for creating new Attendee, but required for updating or deleting existing ones.
    »»» type body string false The type of attendee (Calendar, Contact)
    »»» _destroy body boolean false Flag to delete a specific attendee.
    »» calendar_owner body object false No description
    »»» id body integer(int32) false The unique identifier for a single Calendar associated with the CalendarEntry. The keyword null is not valid for this field.
    »» description body string false A detailed description of the CalendarEntry.
    »» end_at body string(date-time) false The time the CalendarEntry ends (Expects an ISO-8601 timestamp).
    »» external_properties body [object] false No description
    »»» id body integer(int32) false The unique identifier for a single ExternalProperty associated with the CalendarEntry. The keyword null is not valid for this field.
    »»» name body string false The ExternalProperty name.
    »»» value body string false The ExternalProperty value.
    »»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated ExternalProperty is present, the ExternalProperty is deleted from the CalendarEntry.
    »» location body string false The geographic location of the CalendarEntry.
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the CalendarEntry. Use the keyword null to specify no association.
    »» recurrence_rule body string false Recurrence rule for expanding recurring CalendarEntry. To convert an existing recurring event to a non-recurring event, '' or null are valid values.
    »» start_at body string(date-time) false The time the CalendarEntry starts (Expects an ISO-8601 timestamp).
    »» summary body string false A short summary of the CalendarEntry.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» _deleted single
    »» _deleted future

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CalendarEntryShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    CalendarEntry#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/calendar_entries/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/calendar_entries/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/calendar_entries/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/calendar_entries/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/calendar_entries/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/calendar_entries/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/calendar_entries/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /calendar_entries/{id}.json

    Delete a single CalendarEntry

    Outlines the parameters, optional and required, used when deleting the record for a single CalendarEntry

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the CalendarEntry.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Calendars

    Calendars contain Calendar Entries. All Clio accounts contain one firm Calendar ("AccountCalendar"), personal Calendars for each user ("UserCalendar"), and any number of manually created Calendars ("AdhocCalendar"). Calendar sharing settings determine if a Calendar is visible to a User, and if that User is able to create or edit Calendar Entries on that Calendar.

    Support Link

    Calendar#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/calendars.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/calendars.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/calendars.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/calendars.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/calendars.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/calendars.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/calendars.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /calendars.json

    Return the data for all Calendars

    Outlines the parameters, optional and required, used when requesting the data for all Calendars

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    filter_inactive_users query boolean false Filter any shared UserCalendar records whose owner is inactive.
    limit query integer(int32) false A limit on the number of Calendar records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the Calendar records by the given field. Default: id(asc).
    owner query boolean false Filter Calendar records to those that the user owns.
    page_token query integer(int32) false A token specifying which page to return.
    type query string false Filter Calendar records to those of the specified type.
    visible query boolean false Filter Calendar records to those that are visible.
    writeable query boolean false Filter Calendar records to those which the user can write to.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order name(asc)
    order name(desc)
    order id(asc)
    order id(desc)
    type AccountCalendar
    type AdhocCalendar
    type UserCalendar

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CalendarList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Calendar#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/calendars.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/calendars.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/calendars.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "color": "#6690ff",
        "name": "string",
        "visible": true
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/calendars.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/calendars.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/calendars.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/calendars.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /calendars.json

    Create a new Calendar

    Outlines the parameters and data fields used when creating a new Calendar

    Body parameter

    {
      "data": {
        "color": "#6690ff",
        "name": "string",
        "visible": true
      }
    }
    
    data:
      color: '#6690ff'
      name: string
      visible: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» color body string false Calendar color as seen in the Clio Web UI.
    »» name body string true Calendar name.
    »» visible body boolean false Whether or not the Calendar should be visible by default in the Clio Web UI.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» color #6690ff
    »» color #f95957
    »» color #209412
    »» color #ff7715
    »» color #ce85ca
    »» color #c69000
    »» color #00ceff
    »» color #00b177
    »» color #50d19b
    »» color #f14a8c
    »» color #afb12a
    »» color #84ab3b
    »» color #b091ee
    »» color #bd9e69
    »» color #f2a000
    »» color #00a5ca
    »» color #cb5a3d
    »» color #959cd0
    »» color #b0b0b0
    »» color #7ba6cd

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created CalendarShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Calendar#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/calendars/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/calendars/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/calendars/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/calendars/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/calendars/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/calendars/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/calendars/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /calendars/{id}.json

    Return the data for a single Calendar

    Outlines the parameters, optional and required, used when requesting the data for a single Calendar

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Calendar.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CalendarShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Calendar#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/calendars/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/calendars/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/calendars/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "color": "#6690ff",
        "name": "string",
        "visible": true
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/calendars/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/calendars/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/calendars/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/calendars/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /calendars/{id}.json

    Update a single Calendar

    Outlines the parameters and data fields used when updating a single Calendar

    Body parameter

    {
      "data": {
        "color": "#6690ff",
        "name": "string",
        "visible": true
      }
    }
    
    data:
      color: '#6690ff'
      name: string
      visible: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Calendar.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» color body string false Calendar color as seen in the Clio Web UI.
    »» name body string false Calendar name.
    »» visible body boolean false Whether or not the Calendar should be visible by default in the Clio Web UI.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» color #6690ff
    »» color #f95957
    »» color #209412
    »» color #ff7715
    »» color #ce85ca
    »» color #c69000
    »» color #00ceff
    »» color #00b177
    »» color #50d19b
    »» color #f14a8c
    »» color #afb12a
    »» color #84ab3b
    »» color #b091ee
    »» color #bd9e69
    »» color #f2a000
    »» color #00a5ca
    »» color #cb5a3d
    »» color #959cd0
    »» color #b0b0b0
    »» color #7ba6cd

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CalendarShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Calendar#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/calendars/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/calendars/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/calendars/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/calendars/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/calendars/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/calendars/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/calendars/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /calendars/{id}.json

    Delete a single Calendar

    Outlines the parameters, optional and required, used when deleting the record for a single Calendar

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Calendar.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Communications

    Users can view all logged phone calls and emails under the Communications tab in Clio. This is also where they can use Clio Secure Messages.

    Communications can be filtered to show those attached to certain Matters or dates, or to show those with or without time entries.

    Support Link

    Communication#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/communications.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/communications.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/communications.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/communications.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/communications.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/communications.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/communications.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /communications.json

    Return the data for all Communications

    Outlines the parameters, optional and required, used when requesting the data for all Communications

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    contact_id query integer(int32) false The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the Communication records with the matching property.
    date query string(date) false Filter Communication records to those that occur on the specified date (Expects an ISO-8601 date).
    external_property_name query string false Filter records to only those with the given external property(s) name set.
    external_property_value query string false Filter records to only those with the given external property(s) value set. Requires external property name as well.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    having_time_entries query boolean false Filter Communication records to those that do or do not have time entries.
    limit query integer(int32) false A limit on the number of Communication records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. Use the keyword null to match those without a Communication. The list will be filtered to include only the Communication records with the matching property.
    order query string false Orders the Communication records by the given field. Default: date(asc).
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for body or subject matching a given string.
    type query string false Filter Communication records to those of the specified type.
    user_id query integer(int32) false The unique identifier for a single User. The keyword null is not valid for this field. The list will be filtered to include only the Communication records with the matching property.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    external_property_name: Filter records to only those with the given external property(s) name set.

    e.g. ?external_property_name=Name

    external_property_value: Filter records to only those with the given external property(s) value set. Requires external property name as well.

    e.g. ?external_property_name=Name&external_property_value=Value

    Enumerated Values

    Parameter Value
    order date(asc)
    order date(desc)
    type EmailCommunication
    type PhoneCommunication

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CommunicationList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Communication#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/communications.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/communications.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/communications.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "body": "string",
        "date": "string",
        "external_properties": [
          {
            "name": "string",
            "value": "string"
          }
        ],
        "matter": {
          "id": 0
        },
        "receivers": [
          {
            "id": 0,
            "type": "User",
            "_deleted": true
          }
        ],
        "senders": [
          {
            "id": 0,
            "type": "User",
            "_deleted": true
          }
        ],
        "subject": "string",
        "type": "PhoneCommunication"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/communications.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/communications.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/communications.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/communications.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /communications.json

    Create a new Communication

    Outlines the parameters and data fields used when creating a new Communication

    Body parameter

    {
      "data": {
        "body": "string",
        "date": "string",
        "external_properties": [
          {
            "name": "string",
            "value": "string"
          }
        ],
        "matter": {
          "id": 0
        },
        "receivers": [
          {
            "id": 0,
            "type": "User",
            "_deleted": true
          }
        ],
        "senders": [
          {
            "id": 0,
            "type": "User",
            "_deleted": true
          }
        ],
        "subject": "string",
        "type": "PhoneCommunication"
      }
    }
    
    data:
      body: string
      date: string
      external_properties:
        - name: string
          value: string
      matter:
        id: 0
      receivers:
        - id: 0
          type: User
          _deleted: true
      senders:
        - id: 0
          type: User
          _deleted: true
      subject: string
      type: PhoneCommunication
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» body body string true The body value.
    »» date body string false The date for the Communication. (Expects an ISO-8601 date).
    »» external_properties body [object] false No description
    »»» name body string false The ExternalProperty name.
    »»» value body string false The ExternalProperty value.
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the Communication. The keyword null is not valid for this field.
    »» receivers body [object] false No description
    »»» id body integer(int32) false Unique ids for the receivers of this Communication.
    »»» type body string false Types of the receivers of this Communication.
    »»» _deleted body boolean false Whether or not the receivers should be deleted.
    »» senders body [object] false No description
    »»» id body integer(int32) false Unique ids for the senders of this Communication.
    »»» type body string false Types of the senders of this Communication.
    »»» _deleted body boolean false Whether or not the senders should be deleted.
    »» subject body string true The subject value.
    »» type body string true Type of the Communication.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »»» type User
    »»» type Contact
    »»» type User
    »»» type Contact
    »» type PhoneCommunication
    »» type EmailCommunication

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created CommunicationShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Communication#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/communications/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/communications/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/communications/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/communications/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/communications/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/communications/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/communications/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /communications/{id}.json

    Return the data for a single Communication

    Outlines the parameters, optional and required, used when requesting the data for a single Communication

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Communication.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CommunicationShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Communication#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/communications/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/communications/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/communications/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "body": "string",
        "date": "string",
        "external_properties": [
          {
            "id": 0,
            "name": "string",
            "value": "string",
            "_destroy": true
          }
        ],
        "matter": {
          "id": 0
        },
        "receivers": [
          {
            "id": 0,
            "type": "User",
            "_deleted": true
          }
        ],
        "senders": [
          {
            "id": 0,
            "type": "User",
            "_deleted": true
          }
        ],
        "subject": "string",
        "type": "PhoneCommunication"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/communications/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/communications/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/communications/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/communications/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /communications/{id}.json

    Update a single Communication

    Outlines the parameters and data fields used when updating a single Communication

    Body parameter

    {
      "data": {
        "body": "string",
        "date": "string",
        "external_properties": [
          {
            "id": 0,
            "name": "string",
            "value": "string",
            "_destroy": true
          }
        ],
        "matter": {
          "id": 0
        },
        "receivers": [
          {
            "id": 0,
            "type": "User",
            "_deleted": true
          }
        ],
        "senders": [
          {
            "id": 0,
            "type": "User",
            "_deleted": true
          }
        ],
        "subject": "string",
        "type": "PhoneCommunication"
      }
    }
    
    data:
      body: string
      date: string
      external_properties:
        - id: 0
          name: string
          value: string
          _destroy: true
      matter:
        id: 0
      receivers:
        - id: 0
          type: User
          _deleted: true
      senders:
        - id: 0
          type: User
          _deleted: true
      subject: string
      type: PhoneCommunication
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Communication.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» body body string false The body value.
    »» date body string false The date for the Communication. (Expects an ISO-8601 date).
    »» external_properties body [object] false No description
    »»» id body integer(int32) false The unique identifier for a single ExternalProperty associated with the Communication. The keyword null is not valid for this field.
    »»» name body string false The ExternalProperty name.
    »»» value body string false The ExternalProperty value.
    »»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated ExternalProperty is present, the ExternalProperty is deleted from the Communication.
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the Communication. The keyword null is not valid for this field.
    »» receivers body [object] false No description
    »»» id body integer(int32) false Unique ids for the receivers of this Communication.
    »»» type body string false Types of the receivers of this Communication.
    »»» _deleted body boolean false Whether or not the receivers should be deleted.
    »» senders body [object] false No description
    »»» id body integer(int32) false Unique ids for the senders of this Communication.
    »»» type body string false Types of the senders of this Communication.
    »»» _deleted body boolean false Whether or not the senders should be deleted.
    »» subject body string false The subject value.
    »» type body string false Type of the Communication.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »»» type User
    »»» type Contact
    »»» type User
    »»» type Contact
    »» type PhoneCommunication
    »» type EmailCommunication

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CommunicationShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Communication#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/communications/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/communications/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/communications/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/communications/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/communications/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/communications/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/communications/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /communications/{id}.json

    Delete a single Communication

    Outlines the parameters, optional and required, used when deleting the record for a single Communication

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Communication.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Contacts

    All clients, prospective clients, companies, and external co-counsels can be viewed as Contacts under the Contacts tab in Clio.

    Support Link

    Associations

    A Contact can be persisted with its associations in a single request. The followings detail the nested attributes to persist the associations.

    Addresses

    Checkout the sample request to update the Addresses of a Contact: json Request PATCH /api/v4/contacts/1.json { data: { addresses: [ // update { id: 1, name: "Work", country: "Canada" }, // create { name: "Home", street: "1234 Canada Way", city: "Burnaby", province: "BC", country: "Canada", postal_code: "V1A 1A1" }, // destroy { id: 2, _destroy: true } ] }

    Custom Field Values

    A CustomFieldValue is an instance of CustomField added to a Contact. Checkout the sample request to update the CustomFieldValues of a Contact: json Request PATCH /api/v4/contacts/1.json { data: { custom_field_values: [ // update { id: 1, custom_field: { id: 1 }, value: 100 }, // create { custom_field: { id: 2 }, value: "123-456-7890" }, // destroy { id: 2, _destroy: true } ] }

    Email Addresses

    Checkout the sample request to update the Email Addresses of a Contact: json Request PATCH /api/v4/contacts/1.json { data: { email_addresses: [ // update { id: 1, name: "Work", address: "demo@clio.com" }, // create { name: "Home", address: "home@clio.com" }, // destroy { id: 2, _destroy: true } ] }

    Instant Messengers

    Checkout the sample request to update the Instant Messengers of a Contact: json Request PATCH /api/v4/contacts/1.json { data: { instant_messengers: [ // update { id: 1, name: "Work", address: "https://twitter.com/goclio" }, // create { name: "Other", address: "https://www.facebook.com/GoClio/" }, // destroy { id: 2, _destroy: true } ] }

    Phone Numbers

    Checkout the sample request to update the Phone Numbers of a Contact: json Request PATCH /api/v4/contacts/1.json { data: { phone_numbers: [ // update { id: 1, name: "Work", number: "123-456-7890" }, // create { name: "Other", number: "000-000-0000" }, // destroy { id: 2, _destroy: true } ] }

    Web Site

    Checkout the sample request to update the Web Site of a Contact: json Request PATCH /api/v4/contacts/1.json { data: { web_sites: [ // update { id: 1, name: "Work", address: "https://support.clio.com/" }, // create { name: "Other", address: "https://www.clio.com/about/careers/" }, // destroy { id: 2, _destroy: true } ] }

    Contact#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/contacts.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/contacts.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/contacts.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/contacts.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/contacts.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/contacts.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/contacts.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /contacts.json

    Return the data for all Contacts

    Outlines the parameters, optional and required, used when requesting the data for all Contacts

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    client_only query boolean false Filter Contact records to those that are clients.
    clio_connect_only query boolean false Filter Contact records to those that are Clio Connect users.
    created_since query string(date-time) false Filter Contact records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    custom_field_values query string false Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or,
    email_only query boolean false Filter Contact records to those that have email addresses.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter Contact records to those having the specified unique identifiers
    initial query string false Filter Contact records to those where the last name or company name start with the given initial.
    limit query integer(int32) false A limit on the number of Contact records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the Contact records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for title, email address, address, phone number, web site, instant messenger,
    shared_resource_id query integer(int32) false Filter Contact records to those that currently have access to a given shared resource.
    type query string false Filter Contact records to those that match the given type.
    updated_since query string(date-time) false Filter Contact records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    custom_field_values: Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string. The key for the custom field value filter is the custom_field.id. e.g. custom_field_values[12345] If an operator is used for a type that does not support it, an 400 Bad Request is returned.

    Supported operators: * checkbox, contact, matter, picklist : =

    e.g. ?custom_field_values[1]=42

    e.g. ?custom_field_values[1]=>=105.4

    e.g. ?custom_field_values[1]=url_encoded

    Multiple conditions for the same custom field:

    If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values. e.g. ?custom_field_values[1]=[<=50, >=45]

    query: Wildcard search for title, email address, address, phone number, web site, instant messenger, custom fields, related matter name, or company name matching a given string.

    Enumerated Values

    Parameter Value
    client_only true,
    client_only false
    clio_connect_only true
    clio_connect_only false
    custom_field_values =
    custom_field_values <
    custom_field_values >
    custom_field_values <=
    custom_field_values >=
    email_only true
    email_only false
    initial A
    initial B
    initial C
    initial D
    initial E
    initial F
    initial G
    initial H
    initial I
    initial J
    initial K
    initial L
    initial M
    initial N
    initial O
    initial P
    initial Q
    initial R
    initial S
    initial T
    initial U
    initial V
    initial W
    initial X
    initial Y
    initial Z
    order id(asc)
    order id(desc)
    order name(asc)
    order name(desc)
    order shared_at(asc)
    order shared_at(desc)
    type Company
    type Person

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ContactList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Contact#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/contacts.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/contacts.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/contacts.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "addresses": [
          {
            "name": "Other",
            "street": "string",
            "city": "string",
            "province": "string",
            "postal_code": "string",
            "country": "string"
          }
        ],
        "custom_field_values": [
          {
            "value": "string",
            "custom_field": {
              "id": 0
            }
          }
        ],
        "email_addresses": [
          {
            "name": "Other",
            "address": "string",
            "default_email": true
          }
        ],
        "first_name": "string",
        "instant_messengers": [
          {
            "name": "Other",
            "address": "string"
          }
        ],
        "last_name": "string",
        "ledes_client_id": "string",
        "name": "string",
        "phone_numbers": [
          {
            "name": "Other",
            "number": "string",
            "default_number": true
          }
        ],
        "prefix": "Mr",
        "title": "string",
        "type": "Person",
        "web_sites": [
          {
            "name": "Other",
            "address": "string"
          }
        ]
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/contacts.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/contacts.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/contacts.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/contacts.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /contacts.json

    Create a new Contact

    Outlines the parameters and data fields used when creating a new Contact

    Body parameter

    {
      "data": {
        "addresses": [
          {
            "name": "Other",
            "street": "string",
            "city": "string",
            "province": "string",
            "postal_code": "string",
            "country": "string"
          }
        ],
        "custom_field_values": [
          {
            "value": "string",
            "custom_field": {
              "id": 0
            }
          }
        ],
        "email_addresses": [
          {
            "name": "Other",
            "address": "string",
            "default_email": true
          }
        ],
        "first_name": "string",
        "instant_messengers": [
          {
            "name": "Other",
            "address": "string"
          }
        ],
        "last_name": "string",
        "ledes_client_id": "string",
        "name": "string",
        "phone_numbers": [
          {
            "name": "Other",
            "number": "string",
            "default_number": true
          }
        ],
        "prefix": "Mr",
        "title": "string",
        "type": "Person",
        "web_sites": [
          {
            "name": "Other",
            "address": "string"
          }
        ]
      }
    }
    
    data:
      addresses:
        - name: Other
          street: string
          city: string
          province: string
          postal_code: string
          country: string
      custom_field_values:
        - value: string
          custom_field:
            id: 0
      email_addresses:
        - name: Other
          address: string
          default_email: true
      first_name: string
      instant_messengers:
        - name: Other
          address: string
      last_name: string
      ledes_client_id: string
      name: string
      phone_numbers:
        - name: Other
          number: string
          default_number: true
      prefix: Mr
      title: string
      type: Person
      web_sites:
        - name: Other
          address: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» addresses body [object] false No description
    »»» name body string false Name of the Address.
    »»» street body string false Street.
    »»» city body string false City.
    »»» province body string false Province or state.
    »»» postal_code body string false Postal code or zip code.
    »»» country body string false Country
    »» custom_field_values body [object] false No description
    »»» value body string true The value of the CustomFieldValue.
    »»» custom_field body object true No description
    »»»» id body integer(int32) true The unique identifier for a single CustomField associated with the CustomFieldValue. The keyword null is not valid for this field.
    »»» email_addresses body [object] false No description
    »»»» name body string false Name of the EmailAddress.
    »»»» address body string false Email address.
    »»»» default_email body boolean false Whether or not the Contact should be the default email for the Contact.
    »»» first_name body string false First name of the Contact.
    »»» instant_messengers body [object] false No description
    »»»» name body string false Name of the InstantMessenger.
    »»»» address body string false Address of the InstantMessenger.
    »»» last_name body string false Last name of the Contact.
    »»» ledes_client_id body string false Ledes client id of the Contact.
    »»» name body string true Full name of the Contact.
    »»» phone_numbers body [object] false No description
    »»»» name body string false Name of the PhoneNumber.
    »»»» number body string false Phone number.
    »»»» default_number body boolean false Whether or not the PhoneNumber should be the default number for the Contact.
    »»» prefix body string false Personal title of the Contact.
    »»» title body string false Professional title of the Contact.
    »»» type body string true Type of the Contact.
    »»» web_sites body [object] false No description
    »»»» name body string false Name of the WebSite.
    »»»» address body string false URL of the WebSite.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »»» name Work
    »»» name Home
    »»» name Billing
    »»» name Other
    »»»» name Work
    »»»» name Home
    »»»» name Other
    »»»» name Work
    »»»» name Personal
    »»»» name Other
    »»»» name Work
    »»»» name Home
    »»»» name Mobile
    »»»» name Fax
    »»»» name Pager
    »»»» name Skype
    »»»» name Other
    »»» prefix Mr
    »»» prefix Mrs
    »»» prefix Ms
    »»» prefix Dr
    »»» prefix Hon
    »»» type Person
    »»» type Company
    »»»» name Work
    »»»» name Personal
    »»»» name Other

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created ContactShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Contact#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/contacts/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/contacts/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/contacts/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/contacts/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/contacts/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/contacts/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/contacts/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /contacts/{id}.json

    Return the data for a single Contact

    Outlines the parameters, optional and required, used when requesting the data for a single Contact

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Contact.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ContactShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Contact#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/contacts/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/contacts/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/contacts/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "addresses": [
          {
            "name": "Other",
            "street": "string",
            "city": "string",
            "province": "string",
            "postal_code": "string",
            "country": "string",
            "id": 0,
            "_destroy": true
          }
        ],
        "custom_field_values": [
          {
            "value": "string",
            "custom_field": {
              "id": 0
            },
            "id": 0,
            "_destroy": true
          }
        ],
        "email_addresses": [
          {
            "id": 0,
            "name": "Other",
            "address": "string",
            "default_email": true,
            "_destroy": true
          }
        ],
        "first_name": "string",
        "instant_messengers": [
          {
            "name": "Other",
            "address": "string",
            "id": 0,
            "_destroy": true
          }
        ],
        "last_name": "string",
        "ledes_client_id": "string",
        "name": "string",
        "phone_numbers": [
          {
            "name": "Other",
            "number": "string",
            "default_number": true,
            "id": 0,
            "_destroy": true
          }
        ],
        "prefix": "Mr",
        "title": "string",
        "type": "Person",
        "web_sites": [
          {
            "name": "Other",
            "address": "string",
            "id": 0,
            "_destroy": true
          }
        ]
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/contacts/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/contacts/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/contacts/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/contacts/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /contacts/{id}.json

    Update a single Contact

    Outlines the parameters and data fields used when updating a single Contact

    Body parameter

    {
      "data": {
        "addresses": [
          {
            "name": "Other",
            "street": "string",
            "city": "string",
            "province": "string",
            "postal_code": "string",
            "country": "string",
            "id": 0,
            "_destroy": true
          }
        ],
        "custom_field_values": [
          {
            "value": "string",
            "custom_field": {
              "id": 0
            },
            "id": 0,
            "_destroy": true
          }
        ],
        "email_addresses": [
          {
            "id": 0,
            "name": "Other",
            "address": "string",
            "default_email": true,
            "_destroy": true
          }
        ],
        "first_name": "string",
        "instant_messengers": [
          {
            "name": "Other",
            "address": "string",
            "id": 0,
            "_destroy": true
          }
        ],
        "last_name": "string",
        "ledes_client_id": "string",
        "name": "string",
        "phone_numbers": [
          {
            "name": "Other",
            "number": "string",
            "default_number": true,
            "id": 0,
            "_destroy": true
          }
        ],
        "prefix": "Mr",
        "title": "string",
        "type": "Person",
        "web_sites": [
          {
            "name": "Other",
            "address": "string",
            "id": 0,
            "_destroy": true
          }
        ]
      }
    }
    
    data:
      addresses:
        - name: Other
          street: string
          city: string
          province: string
          postal_code: string
          country: string
          id: 0
          _destroy: true
      custom_field_values:
        - value: string
          custom_field:
            id: 0
          id: 0
          _destroy: true
      email_addresses:
        - id: 0
          name: Other
          address: string
          default_email: true
          _destroy: true
      first_name: string
      instant_messengers:
        - name: Other
          address: string
          id: 0
          _destroy: true
      last_name: string
      ledes_client_id: string
      name: string
      phone_numbers:
        - name: Other
          number: string
          default_number: true
          id: 0
          _destroy: true
      prefix: Mr
      title: string
      type: Person
      web_sites:
        - name: Other
          address: string
          id: 0
          _destroy: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Contact.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» addresses body [object] false No description
    »»» name body string false Name of the Address.
    »»» street body string false Street.
    »»» city body string false City.
    »»» province body string false Province or state.
    »»» postal_code body string false Postal code or zip code.
    »»» country body string false Country
    »»» id body integer(int32) false The unique identifier for a single Address associated with the Contact. The keyword null is not valid for this field.
    »»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated Address is present, the Address is deleted from the Contact.
    »» custom_field_values body [object] false No description
    »»» value body string false The value of the CustomFieldValue.
    »»» custom_field body object false No description
    »»»» id body integer(int32) false The unique identifier for a single CustomField associated with the CustomFieldValue. The keyword null is not valid for this field.
    »»» id body integer(int32) false The unique identifier for a single CustomFieldValue associated with the Contact. The keyword null is not valid for this field.
    »»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated CustomFieldValue is present, the CustomFieldValue is deleted from the Contact.
    »» email_addresses body [object] false No description
    »»» id body integer(int32) false The unique identifier for a single EmailAddress associated with the Contact. The keyword null is not valid for this field.
    »»» name body string false Name of the EmailAddress.
    »»» address body string false Email address.
    »»» default_email body boolean false Whether or not the Contact should be the default email for the Contact.
    »»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated EmailAddress is present, the EmailAddress is deleted from the Contact.
    »» first_name body string false First name of the Contact.
    »» instant_messengers body [object] false No description
    »»» name body string false Name of the InstantMessenger.
    »»» address body string false Address of the InstantMessenger.
    »»» id body integer(int32) false The unique identifier for a single InstantMessenger associated with the Contact. The keyword null is not valid for this field.
    »»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated InstantMessenger is present, the InstantMessenger is deleted from the Contact.
    »» last_name body string false Last name of the Contact.
    »» ledes_client_id body string false Ledes client id of the Contact.
    »» name body string false Full name of the Contact.
    »» phone_numbers body [object] false No description
    »»» name body string false Name of the PhoneNumber.
    »»» number body string false Phone number.
    »»» default_number body boolean false Whether or not the PhoneNumber should be the default number for the Contact.
    »»» id body integer(int32) false The unique identifier for a single PhoneNumber associated with the Contact. The keyword null is not valid for this field.
    »»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated PhoneNumber is present, the PhoneNumber is deleted from the Contact.
    »» prefix body string false Personal title of the Contact.
    »» title body string false Professional title of the Contact.
    »» type body string false Type of the Contact.
    »» web_sites body [object] false No description
    »»» name body string false Name of the WebSite.
    »»» address body string false URL of the WebSite.
    »»» id body integer(int32) false The unique identifier for a single WebSite associated with the Contact. The keyword null is not valid for this field.
    »»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated WebSite is present, the WebSite is deleted from the Contact.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »»» name Work
    »»» name Home
    »»» name Billing
    »»» name Other
    »»» name Work
    »»» name Home
    »»» name Other
    »»» name Work
    »»» name Personal
    »»» name Other
    »»» name Work
    »»» name Home
    »»» name Mobile
    »»» name Fax
    »»» name Pager
    »»» name Skype
    »»» name Other
    »» prefix Mr
    »» prefix Mrs
    »» prefix Ms
    »» prefix Dr
    »» prefix Hon
    »» type Person
    »» type Company
    »»» name Work
    »»» name Personal
    »»» name Other

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ContactShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Contact#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/contacts/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/contacts/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/contacts/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/contacts/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/contacts/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/contacts/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/contacts/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /contacts/{id}.json

    Delete a single Contact

    Outlines the parameters, optional and required, used when deleting the record for a single Contact

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Contact.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Conversation Messages

    ConversationMessage#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/conversation_messages.json?conversation_id=0 \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/conversation_messages.json?conversation_id=0 HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/conversation_messages.json',
      method: 'get',
      data: '?conversation_id=0',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/conversation_messages.json?conversation_id=0',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/conversation_messages.json',
      params: {
      'conversation_id' => 'integer(int32)'
    }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/conversation_messages.json', params={
      'conversation_id': '0'
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/conversation_messages.json?conversation_id=0");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /conversation_messages.json

    Return the data for all ConversationMessages

    Outlines the parameters, optional and required, used when requesting the data for all ConversationMessages

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    conversation_id query integer(int32) true The unique identifier for a single Conversation. Use the keyword null to match those without a ConversationMessage. The list will be filtered to include only the ConversationMessage records with the matching property.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of ConversationMessage records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the ConversationMessage records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    updated_since query string(date-time) false Filter ConversationMessage records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ConversationMessageList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    ConversationMessage#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/conversation_messages.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/conversation_messages.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/conversation_messages.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "body": "string",
        "conversation": {
          "id": 0
        },
        "matter": {
          "id": 0
        },
        "receivers": [
          {
            "id": 0,
            "type": "Contact"
          }
        ],
        "subject": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/conversation_messages.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/conversation_messages.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/conversation_messages.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/conversation_messages.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /conversation_messages.json

    Create a new ConversationMessage

    Outlines the parameters and data fields used when creating a new ConversationMessage

    Body parameter

    {
      "data": {
        "body": "string",
        "conversation": {
          "id": 0
        },
        "matter": {
          "id": 0
        },
        "receivers": [
          {
            "id": 0,
            "type": "Contact"
          }
        ],
        "subject": "string"
      }
    }
    
    data:
      body: string
      conversation:
        id: 0
      matter:
        id: 0
      receivers:
        - id: 0
          type: Contact
      subject: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» body body string true The body value.
    »» conversation body object false No description
    »»» id body integer(int32) false The unique identifier for a single Conversation associated with this ConversationMessage.
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the ConversationMessage. The keyword null is not valid for this field.
    »» receivers body [object] false No description
    »»» id body integer(int32) false The unique identifier for a single receiver for this ConversationMessage.
    »»» type body string false The type for a single receiver for this ConversationMessage, could be Contact or User.
    »» subject body string false The subject value.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »»» type Contact
    »»» type User

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created ConversationMessageShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    ConversationMessage#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/conversation_messages/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/conversation_messages/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/conversation_messages/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/conversation_messages/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/conversation_messages/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/conversation_messages/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/conversation_messages/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /conversation_messages/{id}.json

    Return the data for a single ConversationMessage

    Outlines the parameters, optional and required, used when requesting the data for a single ConversationMessage

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the ConversationMessage.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ConversationMessageShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Conversations

    Conversation#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/conversations.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/conversations.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/conversations.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/conversations.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/conversations.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/conversations.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/conversations.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /conversations.json

    Return the data for all Conversations

    Outlines the parameters, optional and required, used when requesting the data for all Conversations

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    archived query boolean false Filter archived Conversation records.
    contact_id query integer(int32) false Filter Conversation records for the contact.
    date query string(date) false Filter Conversation records created on a given date. (Expects an ISO-8601 date).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    for_user query boolean false If set to true, filter Conversation records accessible to any groups of the user.
    limit query integer(int32) false A limit on the number of Conversation records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. Use the keyword null to match those without a Conversation. The list will be filtered to include only the Conversation records with the matching property.
    order query string false Orders the Conversation records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    read_status query boolean false Filter Conversation records to those which have been read.
    time_entries query boolean false Filter Conversation records to those with or without associated time entries.
    updated_since query string(date-time) false Filter Conversation records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    for_user: If set to true, filter Conversation records accessible to any groups of the user. Note that the user may not be member of the conversations.

    If set to false, filter Conversation records of which the user is a member.

    Enumerated Values

    Parameter Value
    archived true
    archived false
    for_user true
    for_user false
    order last_message_id(asc)
    order last_message_id(desc)
    order matter_id(asc)
    order matter_id(desc)
    read_status true
    read_status false
    time_entries true
    time_entries false

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ConversationList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Conversation#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/conversations/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/conversations/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/conversations/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/conversations/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/conversations/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/conversations/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/conversations/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /conversations/{id}.json

    Return the data for a single Conversation

    Outlines the parameters, optional and required, used when requesting the data for a single Conversation

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Conversation.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ConversationShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Conversation#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/conversations/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    PATCH /api/v4/conversations/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/conversations/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "archived": true,
        "matter": {
          "id": 0
        },
        "read": true
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/conversations/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.patch '/api/v4/conversations/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.patch('/api/v4/conversations/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/conversations/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /conversations/{id}.json

    Update a single Conversation

    Outlines the parameters and data fields used when updating a single Conversation

    Body parameter

    {
      "data": {
        "archived": true,
        "matter": {
          "id": 0
        },
        "read": true
      }
    }
    
    data:
      archived: true
      matter:
        id: 0
      read: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Conversation.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» archived body boolean false Whether or not the Conversation has been archived.
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the Conversation. The keyword null is not valid for this field.
    »» read body boolean false Whether or not the Conversation has been read.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ConversationShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Jurisdictions To Triggers

    Jurisdictions-to-Triggers calculates the effective dates of related court and agency rules that a lawyer must do for a Trigger. A Trigger is an activity or event which a lawyer or court does in a jurisdiction.

    These activities and events have corresponding deadlines, which the firm must be aware of. These deadlines can be before or after the Trigger. Example Triggers are “Mediation-Session Completed, “Notice of Appeal Filed,” ” or “Settlement Conference.”

    Jurisdiction triggers are part of the Court Rules feature, available only for subscribers to Clio’s Elite plan.

    Note that only account Administrators can add Court Rules jurisdictions.

    Support Link

    Court Rules Settings in Clio

    JurisdictionsToTrigger#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /court_rules/jurisdictions/{jurisdiction_id}/triggers.json

    Return the data for all triggers

    Outlines the parameters, optional and required, used when requesting the data for all JurisdictionsToTriggers

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    is_requirements_required query boolean false Filter JurisdictionsToTrigger records to those which require addition requirements to be checked (usually specifying trigger time).
    is_served query boolean false Filter JurisdictionsToTrigger records to those which require a service type to be selected.
    jurisdiction_id path integer(int32) true The unique identifier for the Jurisdiction.
    limit query integer(int32) false A limit on the number of JurisdictionsToTrigger records to be returned. Limit can range between 1 and 200. Default: 200.
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for description matching a given string.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok JurisdictionsToTriggerList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    JurisdictionsToTrigger#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /court_rules/jurisdictions/{jurisdiction_id}/triggers/{id}.json

    Return the data for the trigger

    Outlines the parameters, optional and required, used when requesting the data for a single JurisdictionsToTrigger

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the JurisdictionsToTrigger.
    jurisdiction_id path integer(int32) true The unique identifier for the Jurisdiction.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok JurisdictionsToTriggerShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Jurisdictions

    There are over 1000 jurisdictions available to choose from when using Court Rules. These jurisdictions contain state, federal, appellate, and bankruptcy courts from across the United States.

    Jurisdictions are part of the Court Rules feature, available only for subscribers to Clio’s Elite plan.

    Support Link

    Currently Available Jurisdictions

    Jurisdiction#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/court_rules/jurisdictions.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/court_rules/jurisdictions.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/court_rules/jurisdictions.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/court_rules/jurisdictions.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/court_rules/jurisdictions.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/court_rules/jurisdictions.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/court_rules/jurisdictions.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /court_rules/jurisdictions.json

    Return the data for all jurisdictions

    Outlines the parameters, optional and required, used when requesting the data for all Jurisdictions

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    created_since query string(date-time) false Filter Jurisdiction records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    for_current_account query boolean false Filter Jurisdiction records to those set up for this account.
    ids[] query integer(int32) false Filter Jurisdiction records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of Jurisdiction records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the Jurisdiction records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for description matching a given string.
    updated_since query string(date-time) false Filter Jurisdiction records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order description(asc)
    order description(desc)
    order id(asc)
    order id(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok JurisdictionList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Jurisdiction#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/court_rules/jurisdictions/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/court_rules/jurisdictions/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/court_rules/jurisdictions/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/court_rules/jurisdictions/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/court_rules/jurisdictions/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/court_rules/jurisdictions/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/court_rules/jurisdictions/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /court_rules/jurisdictions/{id}.json

    Return the data for the jurisdiction

    Outlines the parameters, optional and required, used when requesting the data for a single Jurisdiction

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Jurisdiction.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok JurisdictionShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Matter Dockets

    A Matter Docket connects a Matter with a Court Rule (and all of the Calendar Entries associated with the Court Rule). Matter Dockets are viewable on the Matter Edit screen under the Court Rules heading.

    Matter Dockets are part of the Court Rules feature, available only for subscribers to Clio’s Elite plan.

    Support Link

    MatterDocket#preview

    Code samples

    # You can also use wget
    curl -X GET /api/v4/court_rules/matter_dockets/preview.json?jurisdiction%5Bid%5D=0&service_type%5Bid%5D=0&start_date=2018-03-22T20%3A30%3A34Z&start_time=2018-03-22T20%3A30%3A34Z&trigger%5Bid%5D=0 \
      -H 'Accept: */*'
    
    
    
    GET /api/v4/court_rules/matter_dockets/preview.json?jurisdiction%5Bid%5D=0&service_type%5Bid%5D=0&start_date=2018-03-22T20%3A30%3A34Z&start_time=2018-03-22T20%3A30%3A34Z&trigger%5Bid%5D=0 HTTP/1.1
    Host: null
    
    
    Accept: */*
    
    
    
    var headers = {
      'Accept':'*/*'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/court_rules/matter_dockets/preview.json',
      method: 'get',
      data: '?jurisdiction%5Bid%5D=0&service_type%5Bid%5D=0&start_date=2018-03-22T20%3A30%3A34Z&start_time=2018-03-22T20%3A30%3A34Z&trigger%5Bid%5D=0',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*'
    
    
    };
    
    
    fetch('/api/v4/court_rules/matter_dockets/preview.json?jurisdiction%5Bid%5D=0&service_type%5Bid%5D=0&start_date=2018-03-22T20%3A30%3A34Z&start_time=2018-03-22T20%3A30%3A34Z&trigger%5Bid%5D=0',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*'
    }
    
    
    result = RestClient.get '/api/v4/court_rules/matter_dockets/preview.json',
      params: {
      'jurisdiction[id]' => 'integer(int32)',
    'service_type[id]' => 'integer(int32)',
    'start_date' => 'string(date-time)',
    'start_time' => 'string(date-time)',
    'trigger[id]' => 'integer(int32)'
    }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*'
    }
    
    
    r = requests.get('/api/v4/court_rules/matter_dockets/preview.json', params={
      'jurisdiction[id]': '0',  'service_type[id]': '0',  'start_date': '2018-03-22T20:30:34Z',  'start_time': '2018-03-22T20:30:34Z',  'trigger[id]': '0'
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/court_rules/matter_dockets/preview.json?jurisdiction%5Bid%5D=0&service_type%5Bid%5D=0&start_date=2018-03-22T20%3A30%3A34Z&start_time=2018-03-22T20%3A30%3A34Z&trigger%5Bid%5D=0");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /court_rules/matter_dockets/preview.json

    Preview calendar dates for the docket

    Preview calendar dates for the docket

    Parameters

    Parameter In Type Required Description
    jurisdiction[id] query integer(int32) true The unique identifier for a single Jurisdiction. The keyword null is not valid for this field. The list will be filtered to include only the MatterDocket records with the matching property.
    service_type[id] query integer(int32) true The unique identifier for a single ServiceType. The keyword null is not valid for this field. The list will be filtered to include only the MatterDocket records with the matching property.
    start_date query string(date-time) true The date the MatterDocket should start. (Expects an ISO-8601 date).
    start_time query string(date-time) true The time the MatterDocket should start. (Expects an ISO-8601 timestamp).
    trigger[id] query integer(int32) true The unique identifier for a single JurisdictionsToTrigger. The keyword null is not valid for this field. The list will be filtered to include only the MatterDocket records with the matching property.

    Example responses

    Responses

    Status Meaning Description Schema
    303 See Other See Other None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    MatterDocket#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/court_rules/matter_dockets.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/court_rules/matter_dockets.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/court_rules/matter_dockets.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/court_rules/matter_dockets.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/court_rules/matter_dockets.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/court_rules/matter_dockets.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/court_rules/matter_dockets.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /court_rules/matter_dockets.json

    Return the data for all matter dockets

    Outlines the parameters, optional and required, used when requesting the data for all MatterDockets

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of MatterDocket records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the MatterDocket records with the matching property.
    matter_status query string false Filter MatterDocket records to those with Matters having a specific status.
    order query string false Orders the MatterDocket records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for name matching a given string.
    service_type_id query integer(int32) false The unique identifier for a single ServiceType. Use the keyword null to match those without a MatterDocket. The list will be filtered to include only the MatterDocket records with the matching property.
    status query string false Filter MatterDocket records to those having a specific status.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    matter_status open
    matter_status closed
    matter_status pending
    order id(asc)
    order id(desc)
    order date(asc)
    order date(desc)
    status not_started,
    status in_progress,
    status failed,
    status completed

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok MatterDocketList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    MatterDocket#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/court_rules/matter_dockets.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/court_rules/matter_dockets.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/court_rules/matter_dockets.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "name": "string",
        "start_date": "2018-03-22",
        "start_time": "2018-03-22T20:30:34Z"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/court_rules/matter_dockets.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/court_rules/matter_dockets.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/court_rules/matter_dockets.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/court_rules/matter_dockets.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /court_rules/matter_dockets.json

    Creates a matter docket

    Outlines the parameters and data fields used when creating a new MatterDocket

    Body parameter

    {
      "data": {
        "name": "string",
        "start_date": "2018-03-22",
        "start_time": "2018-03-22T20:30:34Z"
      }
    }
    
    data:
      name: string
      start_date: '2018-03-22'
      start_time: '2018-03-22T20:30:34Z'
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» name body string true Name of the MatterDocket.
    »» start_date body string(date) true Start date of the MatterDocket. (Expects an ISO-8601 date).
    »» start_time body string(date-time) false Start time of the MatterDocket. Required for some triggers. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created MatterDocketShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    MatterDocket#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/court_rules/matter_dockets/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/court_rules/matter_dockets/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/court_rules/matter_dockets/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/court_rules/matter_dockets/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/court_rules/matter_dockets/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/court_rules/matter_dockets/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/court_rules/matter_dockets/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /court_rules/matter_dockets/{id}.json

    Return the data for the matter docket

    Outlines the parameters, optional and required, used when requesting the data for a single MatterDocket

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the MatterDocket.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok MatterDocketShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    MatterDocket#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/court_rules/matter_dockets/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/court_rules/matter_dockets/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/court_rules/matter_dockets/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/court_rules/matter_dockets/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/court_rules/matter_dockets/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/court_rules/matter_dockets/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/court_rules/matter_dockets/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /court_rules/matter_dockets/{id}.json

    Deletes the requested matter docket

    Outlines the parameters, optional and required, used when deleting the record for a single MatterDocket

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the MatterDocket.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Service Types

    Service Types are used when creating new Court Rules involving the delivery of documents. In order to calculate the correct deadline to send the document, an account will specify their Service Type.

    Current Service Types; * Express mail outside country * Mail outside country * Personal/hand * Mail outside state * Electronic service * Fax service * Express/Overnight * Regular mail * Electronic service - 0 days

    Service Types are part of the Court Rules feature, available only for subscribers to Clio’s Elite plan.

    Support Link

    ServiceType#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/court_rules/service_types.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/court_rules/service_types.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/court_rules/service_types.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/court_rules/service_types.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/court_rules/service_types.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/court_rules/service_types.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/court_rules/service_types.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /court_rules/service_types.json

    Return the data for all service types

    Outlines the parameters, optional and required, used when requesting the data for all ServiceTypes

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    created_since query string(date-time) false Filter ServiceType records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter ServiceType records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of ServiceType records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the ServiceType records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    updated_since query string(date-time) false Filter ServiceType records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order description(asc)
    order description(desc)
    order id(asc)
    order id(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ServiceTypeList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    ServiceType#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/court_rules/service_types/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/court_rules/service_types/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/court_rules/service_types/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/court_rules/service_types/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/court_rules/service_types/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/court_rules/service_types/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/court_rules/service_types/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /court_rules/service_types/{id}.json

    Return the data for the service type

    Outlines the parameters, optional and required, used when requesting the data for a single ServiceType

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the ServiceType.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ServiceTypeShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Clio Payments Cards

    ClioPaymentsCard#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/credit_cards.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    POST /api/v4/credit_cards.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/credit_cards.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/credit_cards.json',
    {
      method: 'POST',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.post '/api/v4/credit_cards.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.post('/api/v4/credit_cards.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/credit_cards.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /credit_cards.json

    Return the data for a single ClioPaymentsCard

    Outlines the parameters, optional and required, used when requesting the data for a single ClioPaymentsCard

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ClioPaymentsCardShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Credit Memos

    Credit Memos allow users to write off amounts that clients owe on approved Bills. They can be added in two "ways": when viewing a Bill, or when making a payment on a Bill.

    Support Link

    CreditMemo#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/credit_memos.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/credit_memos.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/credit_memos.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/credit_memos.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/credit_memos.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/credit_memos.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/credit_memos.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /credit_memos.json

    Return the data for all CreditMemos

    Outlines the parameters, optional and required, used when requesting the data for all CreditMemos

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    contact_id query integer(int32) false The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the CreditMemo records with the matching property.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of CreditMemo records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the CreditMemo records by the given field. Default: date(asc).
    page_token query integer(int32) false A token specifying which page to return.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order date(asc)
    order date(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CreditMemoList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    CreditMemo#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/credit_memos/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/credit_memos/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/credit_memos/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/credit_memos/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/credit_memos/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/credit_memos/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/credit_memos/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /credit_memos/{id}.json

    Return the data for a single CreditMemo

    Outlines the parameters, optional and required, used when requesting the data for a single CreditMemo

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the CreditMemo.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CreditMemoShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Currencies

    Currency#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/currencies.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/currencies.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/currencies.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/currencies.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/currencies.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/currencies.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/currencies.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /currencies.json

    Return the data for all Currencies

    Outlines the parameters, optional and required, used when requesting the data for all Currencies

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of Currency records to be returned. Limit can range between 1 and 200. Default: 200.
    page_token query integer(int32) false A token specifying which page to return.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CurrencyList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Custom Fields

    CustomField#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/custom_fields.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/custom_fields.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/custom_fields.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/custom_fields.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/custom_fields.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/custom_fields.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/custom_fields.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /custom_fields.json

    Return the data for all CustomFields

    Outlines the parameters, optional and required, used when requesting the data for all CustomFields

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    created_since query string(date-time) false Filter CustomField records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    deleted query boolean false Filter CustomField records to those that have been deleted for future use.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter CustomField records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of CustomField records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the CustomField records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    parent_type query string false Filter CustomField records to those that have the specified parent_type.
    query query string false Wildcard search for name matching a given string.
    updated_since query string(date-time) false Filter CustomField records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    deleted true
    deleted false
    order id(asc)
    order id(desc)
    order name(asc)
    order name(desc)
    order display_order(asc)
    order display_order(desc)
    parent_type matter
    parent_type contact

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CustomFieldList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    CustomField#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/custom_fields.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/custom_fields.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/custom_fields.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "display_order": 0,
        "displayed": "true",
        "field_type": "checkbox",
        "name": "string",
        "parent_type": "Contact",
        "picklist_options": [
          {
            "id": 0,
            "option": "string",
            "_deleted": true
          }
        ],
        "required": "true"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/custom_fields.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/custom_fields.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/custom_fields.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/custom_fields.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /custom_fields.json

    Create a new CustomField

    Outlines the parameters and data fields used when creating a new CustomField

    Body parameter

    {
      "data": {
        "display_order": 0,
        "displayed": "true",
        "field_type": "checkbox",
        "name": "string",
        "parent_type": "Contact",
        "picklist_options": [
          {
            "id": 0,
            "option": "string",
            "_deleted": true
          }
        ],
        "required": "true"
      }
    }
    
    data:
      display_order: 0
      displayed: 'true'
      field_type: checkbox
      name: string
      parent_type: Contact
      picklist_options:
        - id: 0
          option: string
          _deleted: true
      required: 'true'
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» display_order body integer(int32) false The display position of the CustomField.
    »» displayed body boolean false Whether or not the CustomField should be displayed by default.
    »» field_type body string false Field type of the CustomField.
    »» name body string true CustomField name.
    »» parent_type body string false Type of object the CustomField is for.
    »» picklist_options body [object] false No description
    »»» id body integer(int32) false The unique identifier for a single PicklistOption associated with the CustomField. The keyword null is not valid for this field. Not required for creating new PicklistOptions, but required for updating or deleting existing ones.
    »»» option body string false The option value.
    »»» _deleted body boolean false Whether or not the PicklistOption should be deleted.
    »» required body boolean false Whether or not the CustomField should require a value.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» displayed true
    »» displayed false
    »» field_type checkbox
    »» field_type contact
    »» field_type currency
    »» field_type date
    »» field_type time
    »» field_type email
    »» field_type matter
    »» field_type numeric
    »» field_type picklist
    »» field_type text_area
    »» field_type text_line
    »» field_type url
    »» parent_type Contact
    »» parent_type Matter
    »» required true
    »» required false

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created CustomFieldShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    CustomField#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/custom_fields/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/custom_fields/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/custom_fields/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/custom_fields/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/custom_fields/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/custom_fields/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/custom_fields/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /custom_fields/{id}.json

    Return the data for a single CustomField

    Outlines the parameters, optional and required, used when requesting the data for a single CustomField

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the CustomField.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CustomFieldShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    CustomField#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/custom_fields/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/custom_fields/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/custom_fields/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "display_order": 0,
        "displayed": "true",
        "name": "string",
        "picklist_options": [
          {
            "id": 0,
            "option": "string",
            "_deleted": true
          }
        ],
        "required": "true"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/custom_fields/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/custom_fields/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/custom_fields/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/custom_fields/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /custom_fields/{id}.json

    Update a single CustomField

    Outlines the parameters and data fields used when updating a single CustomField

    Body parameter

    {
      "data": {
        "display_order": 0,
        "displayed": "true",
        "name": "string",
        "picklist_options": [
          {
            "id": 0,
            "option": "string",
            "_deleted": true
          }
        ],
        "required": "true"
      }
    }
    
    data:
      display_order: 0
      displayed: 'true'
      name: string
      picklist_options:
        - id: 0
          option: string
          _deleted: true
      required: 'true'
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the CustomField.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» display_order body integer(int32) false The display position of the CustomField.
    »» displayed body boolean false Whether or not the CustomField should be displayed by default.
    »» name body string false CustomField name.
    »» picklist_options body [object] false No description
    »»» id body integer(int32) false The unique identifier for a single PicklistOption associated with the CustomField. The keyword null is not valid for this field. Not required for creating new PicklistOptions, but required for updating or deleting existing ones.
    »»» option body string false The option value.
    »»» _deleted body boolean false Whether or not the PicklistOption should be deleted.
    »» required body boolean false Whether or not the CustomField should require a value.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» displayed true
    »» displayed false
    »» required true
    »» required false

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CustomFieldShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    CustomField#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/custom_fields/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/custom_fields/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/custom_fields/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/custom_fields/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/custom_fields/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/custom_fields/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/custom_fields/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /custom_fields/{id}.json

    Delete a single CustomField

    Outlines the parameters, optional and required, used when deleting the record for a single CustomField

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the CustomField.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Custom Field Sets

    CustomFieldSet#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/custom_field_sets.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/custom_field_sets.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/custom_field_sets.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/custom_field_sets.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/custom_field_sets.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/custom_field_sets.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/custom_field_sets.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /custom_field_sets.json

    Return the data for all CustomFieldSets

    Outlines the parameters, optional and required, used when requesting the data for all CustomFieldSets

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of CustomFieldSet records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the CustomFieldSet records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    parent_type query string false Filter CustomFieldSet records to those that have the specified parent_type.
    query query string false Wildcard search for name matching a given string.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order name(asc)
    order name(desc)
    order id(asc)
    order id(desc)
    order parent_type(asc)
    order parent_type(desc)
    parent_type Matter
    parent_type Contact

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CustomFieldSetList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Groups

    In Clio, permission levels and Matter permissions are controlled using Groups. All accounts contain an “all users” group, as well as individual groups for each user. Admins always have access to all of the account's groups. Users can also create groups manually in order to precisely manage their permissions.

    Support Link

    Group#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/groups.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/groups.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/groups.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/groups.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/groups.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/groups.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/groups.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /groups.json

    Return the data for all Groups

    Outlines the parameters, optional and required, used when requesting the data for all Groups

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    account_wide query boolean false Filter Group records to show all of the account's groups. Defaults to false. Admins will always get the account's groups regardless of the value passed to account_wide.
    created_since query string(date-time) false Filter Group records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter Group records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of Group records to be returned. Limit can range between 1 and 200. Default: 200.
    name query string false Filter Group records to those that match the given name.
    order query string false Orders the Group records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for name matching a given string.
    type query string false Filter Group records to those that match the given type.
    updated_since query string(date-time) false Filter Group records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).
    user_id query integer(int32) false The unique identifier for a single User. The keyword null is not valid for this field. The list will be filtered to include only the Group records with the matching property.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)
    order name(asc)
    order name(desc)
    type AccountGroup
    type AdhocGroup
    type UserGroup

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok GroupList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Group#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/groups.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/groups.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/groups.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "name": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/groups.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/groups.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/groups.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/groups.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /groups.json

    Create a new Group

    Outlines the parameters and data fields used when creating a new Group

    Body parameter

    {
      "data": {
        "name": "string"
      }
    }
    
    data:
      name: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body Group_createBody false JSON body
    » data body object true No description
    »» name body string false Name of the Group.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created GroupShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Group#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/groups/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/groups/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/groups/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/groups/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/groups/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/groups/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/groups/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /groups/{id}.json

    Return the data for a single Group

    Outlines the parameters, optional and required, used when requesting the data for a single Group

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Group.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok GroupShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Group#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/groups/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/groups/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/groups/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "name": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/groups/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/groups/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/groups/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/groups/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /groups/{id}.json

    Update a single Group

    Outlines the parameters and data fields used when updating a single Group

    Body parameter

    {
      "data": {
        "name": "string"
      }
    }
    
    data:
      name: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Group.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body Group_createBody false JSON body
    » data body object true No description
    »» name body string false Name of the Group.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok GroupShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Group#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/groups/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/groups/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/groups/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/groups/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/groups/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/groups/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/groups/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /groups/{id}.json

    Delete a single Group

    Outlines the parameters, optional and required, used when deleting the record for a single Group

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Group.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Import Details

    ImportDetail#preview

    Code samples

    # You can also use wget
    curl -X GET /api/v4/import_details/{id}/preview.json \
      -H 'Accept: */*'
    
    
    
    GET /api/v4/import_details/{id}/preview.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    
    
    
    var headers = {
      'Accept':'*/*'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/import_details/{id}/preview.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*'
    
    
    };
    
    
    fetch('/api/v4/import_details/{id}/preview.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*'
    }
    
    
    result = RestClient.get '/api/v4/import_details/{id}/preview.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*'
    }
    
    
    r = requests.get('/api/v4/import_details/{id}/preview.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/import_details/{id}/preview.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /import_details/{id}/preview.json

    Preview first record of an ImportDetail

    Expected response formats are: * Activity * CalendarEntry * Contact * Matter * Note * Relationship * Task

    This action does not support bulk actions.

    Parameters

    Parameter In Type Required Description
    id path integer(int32) true ID of the Import

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Response format dependent on import type None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    ImportDetail#start

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/import_details/{id}/start.json \
      -H 'Accept: */*'
    
    
    
    PATCH /api/v4/import_details/{id}/start.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    
    
    
    var headers = {
      'Accept':'*/*'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/import_details/{id}/start.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*'
    
    
    };
    
    
    fetch('/api/v4/import_details/{id}/start.json',
    {
      method: 'PATCH',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*'
    }
    
    
    result = RestClient.patch '/api/v4/import_details/{id}/start.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*'
    }
    
    
    r = requests.patch('/api/v4/import_details/{id}/start.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/import_details/{id}/start.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /import_details/{id}/start.json

    Start the ImportDetail

    This action does not support bulk actions

    Parameters

    Parameter In Type Required Description
    id path integer(int32) true The unique identifier for the ImportDetail.

    Example responses

    Responses

    Status Meaning Description Schema
    303 See Other See Other None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    ImportDetail#stop

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/import_details/{id}/stop.json \
      -H 'Accept: */*'
    
    
    
    PATCH /api/v4/import_details/{id}/stop.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    
    
    
    var headers = {
      'Accept':'*/*'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/import_details/{id}/stop.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*'
    
    
    };
    
    
    fetch('/api/v4/import_details/{id}/stop.json',
    {
      method: 'PATCH',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*'
    }
    
    
    result = RestClient.patch '/api/v4/import_details/{id}/stop.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*'
    }
    
    
    r = requests.patch('/api/v4/import_details/{id}/stop.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/import_details/{id}/stop.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /import_details/{id}/stop.json

    Stop the ImportDetail

    This action does not support bulk actions

    Parameters

    Parameter In Type Required Description
    id path integer(int32) true The unique identifier for the ImportDetail.

    Example responses

    Responses

    Status Meaning Description Schema
    303 See Other See Other None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    ImportDetail#undo

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/import_details/{id}/undo.json \
      -H 'Accept: */*'
    
    
    
    PATCH /api/v4/import_details/{id}/undo.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    
    
    
    var headers = {
      'Accept':'*/*'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/import_details/{id}/undo.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*'
    
    
    };
    
    
    fetch('/api/v4/import_details/{id}/undo.json',
    {
      method: 'PATCH',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*'
    }
    
    
    result = RestClient.patch '/api/v4/import_details/{id}/undo.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*'
    }
    
    
    r = requests.patch('/api/v4/import_details/{id}/undo.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/import_details/{id}/undo.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /import_details/{id}/undo.json

    Undo the ImportDetail

    This action does not support bulk actions

    Parameters

    Parameter In Type Required Description
    id path integer(int32) true The unique identifier for the ImportDetail.

    Example responses

    Responses

    Status Meaning Description Schema
    303 See Other See Other None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    ImportDetail#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/import_details/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    DELETE /api/v4/import_details/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/import_details/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/import_details/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.delete '/api/v4/import_details/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.delete('/api/v4/import_details/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/import_details/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /import_details/{id}.json

    Delete a single ImportDetail

    Outlines the parameters, optional and required, used when deleting the record for a single ImportDetail

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the ImportDetail.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    ImportDetail#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/import_details/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/import_details/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/import_details/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/import_details/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/import_details/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/import_details/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/import_details/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /import_details/{id}.json

    Return the data for a single ImportDetail

    Outlines the parameters, optional and required, used when requesting the data for a single ImportDetail

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the ImportDetail.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ImportDetailShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    ImportDetail#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/import_details/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    PATCH /api/v4/import_details/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/import_details/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data[file]": "string",
      "data[file_type]": "csv",
      "data[import_mappings][]": "string",
      "data[importer_type]": "contact",
      "data[mapping_file]": "string",
      "data[source]": "custom"
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/import_details/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.patch '/api/v4/import_details/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.patch('/api/v4/import_details/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/import_details/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /import_details/{id}.json

    Update a single ImportDetail

    Outlines the parameters and data fields used when updating a single ImportDetail

    Body parameter

    'data[file]': string
    'data[file_type]': csv
    'data[import_mappings][]': string
    'data[importer_type]': contact
    'data[mapping_file]': string
    'data[source]': custom
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the ImportDetail.
    body body object false No description
    » data[file] body string(binary) false The ImportDetail file.
    » data[file_type] body string false The file type of an ImportDetail.
    » data[import_mappings][] body string false An array of hashes where each hash specifies how to map CSV columns to valid fields in Clio.
    » data[importer_type] body string false The importer type of an ImportDetail.
    » data[mapping_file] body string(binary) false A JSON file consisting of an array of hashes where each hash specifies how to map CSV columns to valid fields in Clio. This parameter will take precedence over the import_mappings parameter.
    » data[source] body string false The source of an ImportDetail.

    Enumerated Values

    Parameter Value
    » data[file_type] csv
    » data[file_type] ical
    » data[file_type] vcard
    » data[importer_type] contact
    » data[importer_type] note
    » data[importer_type] matter
    » data[importer_type] activity
    » data[importer_type] task
    » data[importer_type] relationship
    » data[importer_type] calendar_entry
    » data[source] custom

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ImportDetailShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    ImportDetail#download_errors

    Code samples

    # You can also use wget
    curl -X GET /api/v4/import_details/{id}/download_errors.json \
      -H 'Accept: */*'
    
    
    
    GET /api/v4/import_details/{id}/download_errors.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    
    
    
    var headers = {
      'Accept':'*/*'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/import_details/{id}/download_errors.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*'
    
    
    };
    
    
    fetch('/api/v4/import_details/{id}/download_errors.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*'
    }
    
    
    result = RestClient.get '/api/v4/import_details/{id}/download_errors.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*'
    }
    
    
    r = requests.get('/api/v4/import_details/{id}/download_errors.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/import_details/{id}/download_errors.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /import_details/{id}/download_errors.json

    Download error file of an ImportDetail

    This action does not support bulk actions. Error file is only available after an import has been completed.

    Parameters

    Parameter In Type Required Description
    id path integer(int32) true ID of the Import

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Dependent on import type, currently only CSV is supported. None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    ImportDetail#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/import_details.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/import_details.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/import_details.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/import_details.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/import_details.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/import_details.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/import_details.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /import_details.json

    Return the data for all ImportDetails

    Outlines the parameters, optional and required, used when requesting the data for all ImportDetails

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of ImportDetail records to be returned. Limit can range between 1 and 200. Default: 200.
    page_token query integer(int32) false A token specifying which page to return.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ImportDetailList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    ImportDetail#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/import_details.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    POST /api/v4/import_details.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/import_details.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data[file]": "string",
      "data[file_type]": "csv",
      "data[import_mappings][]": "string",
      "data[importer_type]": "contact",
      "data[mapping_file]": "string",
      "data[source]": "custom"
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/import_details.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.post '/api/v4/import_details.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.post('/api/v4/import_details.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/import_details.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /import_details.json

    Create a new ImportDetail

    Outlines the parameters and data fields used when creating a new ImportDetail

    Body parameter

    'data[file]': string
    'data[file_type]': csv
    'data[import_mappings][]': string
    'data[importer_type]': contact
    'data[mapping_file]': string
    'data[source]': custom
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false No description
    » data[file] body string(binary) true The ImportDetail file.
    » data[file_type] body string true The file type of an ImportDetail.
    » data[import_mappings][] body string false An array of hashes where each hash specifies how to map CSV columns to valid fields in Clio.
    » data[importer_type] body string true The importer type of an ImportDetail.
    » data[mapping_file] body string(binary) false A JSON file consisting of an array of hashes where each hash specifies how to map CSV columns to valid fields in Clio. This parameter will take precedence over the import_mappings parameter.
    » data[source] body string true The source of an ImportDetail.

    Enumerated Values

    Parameter Value
    » data[file_type] csv
    » data[file_type] ical
    » data[file_type] vcard
    » data[importer_type] contact
    » data[importer_type] note
    » data[importer_type] matter
    » data[importer_type] activity
    » data[importer_type] task
    » data[importer_type] relationship
    » data[importer_type] calendar_entry
    » data[source] custom

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created ImportDetailShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Interest Charges

    InterestCharge#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/interest_charges.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/interest_charges.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/interest_charges.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/interest_charges.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/interest_charges.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/interest_charges.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/interest_charges.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /interest_charges.json

    Return the data for all InterestCharges

    Outlines the parameters, optional and required, used when requesting the data for all InterestCharges

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    bill_id query integer(int32) false The unique identifier for a single Bill. The keyword null is not valid for this field. The list will be filtered to include only the InterestCharge records with the matching property.
    exclude_ids[] query integer(int32) false Array containing InterestCharge identifiers that should be excluded from the query.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of InterestCharge records to be returned. Limit can range between 1 and 200. Default: 200.
    page_token query integer(int32) false A token specifying which page to return.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok InterestChargeList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    InterestCharge#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/interest_charges/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/interest_charges/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/interest_charges/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/interest_charges/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/interest_charges/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/interest_charges/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/interest_charges/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /interest_charges/{id}.json

    Delete a single InterestCharge

    Outlines the parameters, optional and required, used when deleting the record for a single InterestCharge

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the InterestCharge.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Line Items

    LineItem#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/line_items.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/line_items.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/line_items.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/line_items.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/line_items.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/line_items.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/line_items.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /line_items.json

    Return the data for all LineItems

    Outlines the parameters, optional and required, used when requesting the data for all LineItems

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    activity_id query integer(int32) false The unique identifier for a single Activity. Use the keyword null to match those without a LineItem. The list will be filtered to include only the LineItem records with the matching property.
    bill_id query integer(int32) false The unique identifier for a single Bill. The keyword null is not valid for this field. The list will be filtered to include only the LineItem records with the matching property.
    display query boolean false Set this flag to true to return only LineItems displayed on the bill.
    exclude_ids[] query integer(int32) false Array containing LineItem identifiers that should be excluded from the query.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    group_ordering query integer(int32) false Filters LineItem records to match given group ordering.
    kind query string false The kind of LineItem.
    limit query integer(int32) false A limit on the number of LineItem records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. Use the keyword null to match those without a LineItem. The list will be filtered to include only the LineItem records with the matching property.
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for description or note matching a given string.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok LineItemList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    LineItem#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/line_items/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/line_items/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/line_items/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "activity": {
          "id": 0
        },
        "bill": {
          "id": 0
        },
        "date": "2018-03-22",
        "description": "string",
        "discount": {
          "rate": 0,
          "type": true
        },
        "group_ordering": 0,
        "kind": "Expense",
        "matter": {
          "id": 0
        },
        "note": "string",
        "price": 0,
        "quantity": 0,
        "secondary_taxable": true,
        "taxable": true,
        "update_original_record": true
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/line_items/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/line_items/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/line_items/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/line_items/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /line_items/{id}.json

    Update a single LineItem

    Outlines the parameters and data fields used when updating a single LineItem

    Body parameter

    {
      "data": {
        "activity": {
          "id": 0
        },
        "bill": {
          "id": 0
        },
        "date": "2018-03-22",
        "description": "string",
        "discount": {
          "rate": 0,
          "type": true
        },
        "group_ordering": 0,
        "kind": "Expense",
        "matter": {
          "id": 0
        },
        "note": "string",
        "price": 0,
        "quantity": 0,
        "secondary_taxable": true,
        "taxable": true,
        "update_original_record": true
      }
    }
    
    data:
      activity:
        id: 0
      bill:
        id: 0
      date: '2018-03-22'
      description: string
      discount:
        rate: 0
        type: true
      group_ordering: 0
      kind: Expense
      matter:
        id: 0
      note: string
      price: 0
      quantity: 0
      secondary_taxable: true
      taxable: true
      update_original_record: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the LineItem.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» activity body object false No description
    »»» id body integer(int32) false The unique identifier for a single Activity associated with the LineItem. The keyword null is not valid for this field.
    »» bill body object false No description
    »»» id body integer(int32) false The unique identifier for a single Bill associated with the LineItem. The keyword null is not valid for this field.
    »» date body string(date) false The LineItem date.
    »» description body string false Description of the LineItem.
    »» discount body object false No description
    »»» rate body number(double) false Discount rate for the LineItem.
    »»» type body boolean false Discount type. This should be set to one of: 'percentage' or 'money'.
    »» group_ordering body integer(int32) false The LineItem group ordering.
    »» kind body string false The kind of line_item.
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the LineItem. The keyword null is not valid for this field.
    »» note body string false The note attached to the LineItem.
    »» price body number(double) false The price of the LineItem.
    »» quantity body number(double) false Quantity of the LineItem.
    »» secondary_taxable body boolean false Whether the LineItem is secondary taxable.
    »» taxable body boolean false Whether the LineItem taxable.
    »» update_original_record body boolean false Whether the associated activity will be updated.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» kind Expense
    »» kind Service
    »» kind Product

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok LineItemShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    LineItem#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/line_items/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/line_items/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/line_items/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/line_items/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/line_items/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/line_items/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/line_items/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /line_items/{id}.json

    Delete a single LineItem

    A LineItem can not be deleted if it's Bill is not editable

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the LineItem.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Log Entries

    Log Entries populate the “Recent” section in the sidebar. The “Recent” section displays the ten Matters and Contacts that the user most recently accessed.

    When a user accesses a Contact or a Matter, a Log Entry is created.

    Support Link

    LogEntry#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/log_entries.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/log_entries.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/log_entries.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/log_entries.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/log_entries.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/log_entries.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/log_entries.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /log_entries.json

    Return the data for all LogEntries

    Outlines the parameters, optional and required, used when requesting the data for all LogEntries

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of LogEntry records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the LogEntry records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)
    order accessed_at(asc)
    order accessed_at(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok LogEntryList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Matters

    Matters in Clio represent a firm’s cases. All relevant information—Bills, Documents, Time Entries, etc.—are contained in the Matter. A user’s ability to access a Matter is controlled by the Matter Permission settings. A user without permission will be unable to view or update a Matter.

    Support Link

    Matters in Clio

    Associations

    A Matter can be persisted with its associations in a single request. The followings detail the nested attributes to persist the associations.

    Custom Field Values

    A CustomFieldValue is an instance of CustomField added to a Matter. Checkout the sample request to update the CustomFieldValues of a Matter: json Request PATCH /api/v4/matters/1.json { data: { custom_field_values: [ // update { id: 1, custom_field: { id: 1 }, value: 100 }, // create { custom_field: { id: 2 }, value: "123-456-7890" }, // destroy { id: 2, _destroy: true } ] }

    Custom Rates

    Each Matter can be set up to be billed on an Hourly basis, Flat Fee basis, or on Contingency. To set the rate type, assign custom_rate[type] with one of the values, "HourlyRate", "FlatRate" or "ContingencyFee". By default, a Matter is billed on an hourly basis. If the rate type is modified, the persisted rates will be deleted.

    Support Link

    Hourly Rates

    Selecting the "HourlyRate" type will record time entries based on the custom hourly rates. A custom hourly rate can be associated to a User or a Group. Checkout the sample request to update the hourly rates of a Matter: json Request PATCH /api/v4/matters/1.json { data: { custom_rate: { type: "HourlyRate", rates: [ // update a rate for a user { id: 1, rate: 100, user: { id: 1 } }, // update a rate for a group { id: 2, rate: 100, group: { id: 1 } }, // create a rate for a user { rate: 100, user: { id: 2 } }, // create a rate for a group { rate: 100, group: { id: 2 } }, // destroy a rate { id: 3, _destroy: true } ] } } }

    Flat Rate

    Selecting the "FlatRate" type will bill the matter with a flat fee. A Matter can only have one flat rate. For associated objects, you can specify _destroy attribute to delete the rate.

    Checkout the sample request to update the flat rate of a Matter: json Request PATCH /api/v4/matters/1.json { data: { custom_rate: { type: "FlatRate", rates: [ { id: 1, user: { id: 1 }, activity_description: { id: 1 }, rate: 100, } ] } } }

    Contingency Fee

    Selecting the "ContingencyFee" type will specify a contingency fee percentage on a Matter and the award or settlement amount won at the completion of the case. A Matter can only have one definition of contingency fee. For associated objects, you can specify _destroy attribute to delete the rate.

    Contingency Fee Matters are available to subscribers of the Legacy, Boutique, and Elite plans.

    Checkout the sample request to update the contingency fee of a Matter: json Request PATCH /api/v4/matters/1.json { data: { custom_rate: { type: "ContingencyFee", rates: [ { id: 1, user: { id: 1 }, rate: 20, } ] } } }

    Matter Budget

    Clio supports tracking a matter budget directly within a Matter. A Matter can only have one matter budget associated with it. A matter budget can not be added to flat rate matters. For associated objects, you can specify the _destroy attribute to delete the Matter Budget.

    Matter Budget is only available for subscribers to Clio’s Elite plan.

    Checkout the sample request to update the matter budget of a Matter: json Request PATCH /api/v4/matters/1.json { data: { matter_budget: [ budget: 5000000, include_expenses: true, notification_threshold: 500, notify_users: true users: [ { id: 1 }, // destroy { id: 2, _destroy: true } ] ] } }

    Relationships

    There are people and/or companies related to a Matter other than the client of the lawyer. Clio helps define how the entities relate to a Matter.

    Checkout the sample request to update Relationships of a Matter: json Request PATCH /api/v4/matters/1.json { data: { relationships: [ // update { id: 1, contact: { id: 1 }, description: "Opposing Counsel" }, // create { contact: { id: 2 }, description: "Judge" }, // destroy { id: 2, _destroy: true } ] } }

    Statue Of Limitations

    Clio supports to track a Statute of Limitations date directly within a Matter. It can be associated with reminders as a Task. A Matter can only have one definition of Statue of Limitations. For associated objects, you can specify _destroy attribute to delete the Statue of Limitations.

    Support Link

    Checkout the sample request to update the Statue of Limitations and its reminders of a Matter: json Request PATCH /api/v4/matters/1.json { data: { statue_of_limitations: [ due_at: "20201231", status: "open", reminders: [ // update { id: 1, duration_unit: "days", duration_value: 1, notification_method: { id: 1 } }, // create { duration_unit: "days", duration_value: 1, notification_method: { id: 2 } }, // destroy { id: 2, _destroy: true } ] ] } }

    Task Template Lists

    Clio supports assigning task template lists to a matter from with the same request that creates or updates a matter. Please note that a task template list can only be assigned. Once a task template list is assigned, it cannot be modified or destroyed.

    Checkout the sample request to assign a task template list id to a matter:

    Request
      PATCH /api/v4/matters/1.json
      {
        data: {
          task_template_list_instances: [
            {
              notify_assignees: true,
              task_template_list: {id: 1},
            },
            {
              notify_assignees: false,
              task_template_list: {id: 2},
            }
          ],
        }
      }
    

    Matter#ids

    Code samples

    # You can also use wget
    curl -X GET /api/v4/matters/ids.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/matters/ids.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/matters/ids.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/matters/ids.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/matters/ids.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/matters/ids.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/matters/ids.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /matters/ids.json

    Returns the unique identifiers of all Matter

    This data is retrieved asynchronously

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    key query string false If the key is not present, an asynchronous job will be enqueued and a 202 Accepted response will be returned.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok None
    202 Accepted Accepted None
    404 Not Found Not Found Error

    Matter#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/matters.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/matters.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/matters.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/matters.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/matters.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/matters.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/matters.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /matters.json

    Return the data for all Matters

    Outlines the parameters, optional and required, used when requesting the data for all Matters

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    billable query boolean false Filter Matter records to those which are billable.
    client_id query integer(int32) false The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the Matter records with the matching property.
    created_since query string(date-time) false Filter Matter records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    custom_field_ids[] query integer(int32) false Filter Matter's custom_field_values to only include values for the given custom field unique identifiers.
    custom_field_values query string false Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or,
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    group_id query integer(int32) false The unique identifier for a single Group. The keyword null is not valid for this field. The list will be filtered to include only the Matter records with the matching property.
    ids[] query integer(int32) false Filter Matter records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of Matter records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the Matter records by the given field. Default: id(asc).
    originating_attorney_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a Matter. The list will be filtered to include only the Matter records with the matching property.
    page_token query integer(int32) false A token specifying which page to return.
    practice_area_id query integer(int32) false The unique identifier for a single PracticeArea. The keyword null is not valid for this field. The list will be filtered to include only the Matter records with the matching property.
    query query string false Wildcard search for display_number, number or description matching a given string, as well as the first_name, last_name or name of the associated client.
    responsible_attorney_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a Matter. The list will be filtered to include only the Matter records with the matching property.
    status query string false Filter Matter records to those with a given status. It accepts comma-separated statuses, e.g. open,pending.
    updated_since query string(date-time) false Filter Matter records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    custom_field_values: Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string. The key for the custom field value filter is the custom_field.id. e.g. custom_field_values[12345] If an operator is used for a type that does not support it, an 400 Bad Request is returned.

    Supported operators: * checkbox, contact, matter, picklist : =

    e.g. ?custom_field_values[1]=42

    e.g. ?custom_field_values[1]=>=105.4

    e.g. ?custom_field_values[1]=url_encoded

    Multiple conditions for the same custom field:

    If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values. e.g. ?custom_field_values[1]=[<=50, >=45]

    Enumerated Values

    Parameter Value
    billable true
    billable false
    custom_field_values =
    custom_field_values <
    custom_field_values >
    custom_field_values <=
    custom_field_values >=
    order display_number(asc)
    order display_number(desc)
    order custom_number(asc)
    order custom_number(desc)
    order id(asc)
    order id(desc)
    order client.name(asc)
    order client.name(desc)
    order practice_area.name(asc)
    order practice_area.name(desc)
    order open_date(asc)
    order open_date(desc)
    order close_date(asc)
    order close_date(desc)
    order pending_date(asc)
    order pending_date(desc)
    order updated_at(asc)
    order updated_at(desc)
    status open
    status closed
    status pending

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok MatterList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Matter#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/matters.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/matters.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/matters.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "billable": true,
        "client": {
          "id": 0
        },
        "client_reference": "string",
        "close_date": "2018-03-22",
        "custom_field_values": [
          {
            "value": "string",
            "custom_field": {
              "id": 0
            }
          }
        ],
        "custom_rate": {
          "type": "FlatRate",
          "rates": [
            {
              "user": {
                "id": 0
              },
              "award": 0,
              "note": "string",
              "date": "2018-03-22",
              "rate": 0,
              "activity_description": {
                "id": 0
              },
              "group": {
                "id": 0
              }
            }
          ]
        },
        "description": "string",
        "display_number": "string",
        "group": {
          "id": 0
        },
        "location": "string",
        "matter_budget": {
          "_destroy": true,
          "budget": 0,
          "include_expenses": true,
          "notification_threshold": 0,
          "notify_users": true
        },
        "open_date": "2018-03-22",
        "originating_attorney": {
          "id": 0
        },
        "pending_date": "2018-03-22",
        "practice_area": {
          "id": 0
        },
        "relationships": [
          {
            "description": "string",
            "contact": {
              "id": 0
            }
          }
        ],
        "reset_matter_number": true,
        "responsible_attorney": {
          "id": 0
        },
        "status": "open",
        "statute_of_limitations": {
          "status": "pending",
          "due_at": "2018-03-22",
          "reminders": [
            {
              "duration_value": 0,
              "duration_unit": "string",
              "notification_method": {
                "id": 0
              }
            }
          ]
        },
        "task_template_list_instances": [
          {
            "notify_assignees": true
          }
        ]
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/matters.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/matters.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/matters.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/matters.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /matters.json

    Create a new Matter

    Outlines the parameters and data fields used when creating a new Matter

    Body parameter

    {
      "data": {
        "billable": true,
        "client": {
          "id": 0
        },
        "client_reference": "string",
        "close_date": "2018-03-22",
        "custom_field_values": [
          {
            "value": "string",
            "custom_field": {
              "id": 0
            }
          }
        ],
        "custom_rate": {
          "type": "FlatRate",
          "rates": [
            {
              "user": {
                "id": 0
              },
              "award": 0,
              "note": "string",
              "date": "2018-03-22",
              "rate": 0,
              "activity_description": {
                "id": 0
              },
              "group": {
                "id": 0
              }
            }
          ]
        },
        "description": "string",
        "display_number": "string",
        "group": {
          "id": 0
        },
        "location": "string",
        "matter_budget": {
          "_destroy": true,
          "budget": 0,
          "include_expenses": true,
          "notification_threshold": 0,
          "notify_users": true
        },
        "open_date": "2018-03-22",
        "originating_attorney": {
          "id": 0
        },
        "pending_date": "2018-03-22",
        "practice_area": {
          "id": 0
        },
        "relationships": [
          {
            "description": "string",
            "contact": {
              "id": 0
            }
          }
        ],
        "reset_matter_number": true,
        "responsible_attorney": {
          "id": 0
        },
        "status": "open",
        "statute_of_limitations": {
          "status": "pending",
          "due_at": "2018-03-22",
          "reminders": [
            {
              "duration_value": 0,
              "duration_unit": "string",
              "notification_method": {
                "id": 0
              }
            }
          ]
        },
        "task_template_list_instances": [
          {
            "notify_assignees": true
          }
        ]
      }
    }
    
    data:
      billable: true
      client:
        id: 0
      client_reference: string
      close_date: '2018-03-22'
      custom_field_values:
        - value: string
          custom_field:
            id: 0
      custom_rate:
        type: FlatRate
        rates:
          - user:
              id: 0
            award: 0
            note: string
            date: '2018-03-22'
            rate: 0
            activity_description:
              id: 0
            group:
              id: 0
      description: string
      display_number: string
      group:
        id: 0
      location: string
      matter_budget:
        _destroy: true
        budget: 0
        include_expenses: true
        notification_threshold: 0
        notify_users: true
      open_date: '2018-03-22'
      originating_attorney:
        id: 0
      pending_date: '2018-03-22'
      practice_area:
        id: 0
      relationships:
        - description: string
          contact:
            id: 0
      reset_matter_number: true
      responsible_attorney:
        id: 0
      status: open
      statute_of_limitations:
        status: pending
        due_at: '2018-03-22'
        reminders:
          - duration_value: 0
            duration_unit: string
            notification_method:
              id: 0
      task_template_list_instances:
        - notify_assignees: true
    
    
    

    Parameters

    Parameter In Type Required Description
    custom_field_ids[] query integer(int32) false Filter Matter's custom_field_values to only include values for the given custom field unique identifiers.
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» billable body boolean false Whether or not the matter is billable.
    »» client body object true No description
    »»» id body integer(int32) true The unique identifier for a single Contact associated with the Matter. The keyword null is not valid for this field.
    »» client_reference body string false Client Reference string for external uses.
    »» close_date body string(date) false Date the Matter was set to closed. (Expects an ISO-8601 date).
    »» custom_field_values body [object] false No description
    »»» value body string true The value of the CustomFieldValue.
    »»» custom_field body object true No description
    »»»» id body integer(int32) true The unique identifier for a single CustomField associated with the CustomFieldValue. The keyword null is not valid for this field.
    »»» custom_rate body object false No description
    »»»» type body string true The type of custom rate for the Matter.
    »»»» rates body [object] false No description
    »»»»» user body object true No description
    »»»»»» id body integer(int32) true The unique identifier for a single User associated with the Rate. The keyword null is not valid for this field.
    »»»»» award body number(double) false The full amount of the award given. Only valid for ContingencyFee. If given as an empty string, it will reset the ContingencyFee into the unawarded state.
    »»»»» note body string false Detailed description of the rate. Only valid for ContingencyFee.
    »»»»» date body string(date) false The date the rate is for. Only valid for ContingencyFee. (Expects an ISO-8601 date).
    »»»»» rate body number(double) true If type is HourlyRate, it is the dollar amount of the custom rate of the User or Group for the Matter.
    »»»»» activity_description body object false No description
    »»»»»» id body integer(int32) false The unique identifier for a single ActivityDescription associated with the Rate. The keyword null is not valid for this field.
    »»»»» group body object false No description
    »»»»»» id body integer(int32) false The unique identifier for a single Group associated with the Rate. The keyword null is not valid for this field.
    »»»»» description body string true Detailed description of the Matter.
    »»»»» display_number body string false Matter reference and label. Depending on the account's manual_matter_numbering setting, this is either read only (generated), or customizable.
    »»»»» group body object false No description
    »»»»»» id body integer(int32) false The unique identifier for a single Group associated with the Matter. Use the keyword null to specify no association.
    »»»»» location body string false Location of the Matter.
    »»»»» matter_budget body object false No description
    »»»»»» _destroy body boolean false Determines whether the matter budget associated with the matter should be destroyed. Only users with matter budget destroy capabilities can destroy matter budgets.
    »»»»»» budget body number(double) false The amount allocated for the matter.
    »»»»»» include_expenses body boolean false Determines whether the the budget includes expenses in the calculation.
    »»»»»» notification_threshold body integer(int32) false Percentage of the budget when it starts notifying users.
    »»»»»» notify_users body boolean false Determine whether to notify users when the matter reaches the notification threshold.
    »»»»» open_date body string(date) false Date the Matter was set to open. (Expects an ISO-8601 date).
    »»»»» originating_attorney body object false No description
    »»»»»» id body integer(int32) false The unique identifier for a single User associated with the Matter. The keyword null is not valid for this field.
    »»»»» pending_date body string(date) false Date the Matter was set to pending. (Expects an ISO-8601 date).
    »»»»» practice_area body object false No description
    »»»»»» id body integer(int32) false The unique identifier for a single PracticeArea associated with the Matter. Use the keyword null to specify no association.
    »»»»» relationships body [object] false No description
    »»»»»» description body string true Describe the relationship between a Contact and a Matter.
    »»»»»» contact body object true No description
    »»»»»»» id body integer(int32) true The unique identifier for a single Contact associated with the Relationship. The keyword null is not valid for this field.
    »»»»»» reset_matter_number body boolean false Defaults to false. Resets the matter's number based on the account's matter numbering scheme.
    »»»»»» responsible_attorney body object false No description
    »»»»»»» id body integer(int32) false The unique identifier for a single User associated with the Matter. The keyword null is not valid for this field.
    »»»»»» status body string false Matter status.
    »»»»»» statute_of_limitations body object false No description
    »»»»»»» status body string false The task status of Statue of Limitations. Users without advanced tasks are allowed to select Complete' orPending` only.
    »»»»»»» due_at body string(date) false The due date of Statute of Limitations. (Expects an ISO-8601 date).
    »»»»»»» reminders body [object] false No description
    »»»»»»»» duration_value body integer(int32) true Time measured in duration_unit to remind user before the subject.
    »»»»»»»» duration_unit body string true Unit to measure the duration value in.
    »»»»»»»» notification_method body object true No description
    »»»»»»»»» id body integer(int32) true The unique identifier for a single NotificationMethod associated with the Reminder. The keyword null is not valid for this field.
    »»»»»»»» task_template_list_instances body [object] false No description
    »»»»»»»»» notify_assignees body boolean false Whether or not task list assignees should be notified when the task list is assigned to a matter.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    »»»»» rate: If type is HourlyRate, it is the dollar amount of the custom rate of the User or Group for the Matter.

    If type is FlatRate, it is the dollar amount of the custom flat rate for the Matter.

    If type is ContingencyFee, it is the percentage of the contingency fee awarded to the user for the Matter.

    Enumerated Values

    Parameter Value
    »»»» type FlatRate
    »»»» type HourlyRate
    »»»» type ContingencyFee
    »»»»»» status open
    »»»»»» status closed
    »»»»»» status pending
    »»»»»»» status pending
    »»»»»»» status in_progress
    »»»»»»» status in_review
    »»»»»»» status complete

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created MatterShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Matter#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/matters/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/matters/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/matters/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/matters/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/matters/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/matters/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/matters/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /matters/{id}.json

    Return the data for a single Matter

    Outlines the parameters, optional and required, used when requesting the data for a single Matter

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    custom_field_ids[] query integer(int32) false Filter Matter's custom_field_values to only include values for the given custom field unique identifiers.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Matter.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok MatterShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Matter#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/matters/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/matters/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/matters/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "billable": true,
        "client": {
          "id": 0
        },
        "client_reference": "string",
        "close_date": "2018-03-22",
        "custom_field_values": [
          {
            "value": "string",
            "custom_field": {
              "id": 0
            },
            "id": 0,
            "_destroy": true
          }
        ],
        "custom_rate": {
          "type": "FlatRate",
          "rates": [
            {
              "user": {
                "id": 0
              },
              "award": 0,
              "note": "string",
              "date": "2018-03-22",
              "rate": 0,
              "id": 0,
              "_destroy": true,
              "activity_description": {
                "id": 0
              },
              "group": {
                "id": 0
              }
            }
          ]
        },
        "description": "string",
        "display_number": "string",
        "group": {
          "id": 0
        },
        "location": "string",
        "matter_budget": {
          "_destroy": true,
          "budget": 0,
          "include_expenses": true,
          "notification_threshold": 0,
          "notify_users": true
        },
        "open_date": "2018-03-22",
        "originating_attorney": {
          "id": 0
        },
        "pending_date": "2018-03-22",
        "practice_area": {
          "id": 0
        },
        "relationships": [
          {
            "description": "string",
            "contact": {
              "id": 0
            },
            "id": 0,
            "_destroy": true
          }
        ],
        "reset_matter_number": true,
        "responsible_attorney": {
          "id": 0
        },
        "status": "open",
        "statute_of_limitations": {
          "status": "pending",
          "due_at": "2018-03-22",
          "reminders": [
            {
              "duration_value": 0,
              "duration_unit": "string",
              "notification_method": {
                "id": 0
              },
              "id": 0,
              "_destroy": true
            }
          ]
        },
        "task_template_list_instances": [
          {
            "notify_assignees": true
          }
        ]
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/matters/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/matters/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/matters/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/matters/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /matters/{id}.json

    Update a single Matter

    Outlines the parameters and data fields used when updating a single Matter

    Body parameter

    {
      "data": {
        "billable": true,
        "client": {
          "id": 0
        },
        "client_reference": "string",
        "close_date": "2018-03-22",
        "custom_field_values": [
          {
            "value": "string",
            "custom_field": {
              "id": 0
            },
            "id": 0,
            "_destroy": true
          }
        ],
        "custom_rate": {
          "type": "FlatRate",
          "rates": [
            {
              "user": {
                "id": 0
              },
              "award": 0,
              "note": "string",
              "date": "2018-03-22",
              "rate": 0,
              "id": 0,
              "_destroy": true,
              "activity_description": {
                "id": 0
              },
              "group": {
                "id": 0
              }
            }
          ]
        },
        "description": "string",
        "display_number": "string",
        "group": {
          "id": 0
        },
        "location": "string",
        "matter_budget": {
          "_destroy": true,
          "budget": 0,
          "include_expenses": true,
          "notification_threshold": 0,
          "notify_users": true
        },
        "open_date": "2018-03-22",
        "originating_attorney": {
          "id": 0
        },
        "pending_date": "2018-03-22",
        "practice_area": {
          "id": 0
        },
        "relationships": [
          {
            "description": "string",
            "contact": {
              "id": 0
            },
            "id": 0,
            "_destroy": true
          }
        ],
        "reset_matter_number": true,
        "responsible_attorney": {
          "id": 0
        },
        "status": "open",
        "statute_of_limitations": {
          "status": "pending",
          "due_at": "2018-03-22",
          "reminders": [
            {
              "duration_value": 0,
              "duration_unit": "string",
              "notification_method": {
                "id": 0
              },
              "id": 0,
              "_destroy": true
            }
          ]
        },
        "task_template_list_instances": [
          {
            "notify_assignees": true
          }
        ]
      }
    }
    
    data:
      billable: true
      client:
        id: 0
      client_reference: string
      close_date: '2018-03-22'
      custom_field_values:
        - value: string
          custom_field:
            id: 0
          id: 0
          _destroy: true
      custom_rate:
        type: FlatRate
        rates:
          - user:
              id: 0
            award: 0
            note: string
            date: '2018-03-22'
            rate: 0
            id: 0
            _destroy: true
            activity_description:
              id: 0
            group:
              id: 0
      description: string
      display_number: string
      group:
        id: 0
      location: string
      matter_budget:
        _destroy: true
        budget: 0
        include_expenses: true
        notification_threshold: 0
        notify_users: true
      open_date: '2018-03-22'
      originating_attorney:
        id: 0
      pending_date: '2018-03-22'
      practice_area:
        id: 0
      relationships:
        - description: string
          contact:
            id: 0
          id: 0
          _destroy: true
      reset_matter_number: true
      responsible_attorney:
        id: 0
      status: open
      statute_of_limitations:
        status: pending
        due_at: '2018-03-22'
        reminders:
          - duration_value: 0
            duration_unit: string
            notification_method:
              id: 0
            id: 0
            _destroy: true
      task_template_list_instances:
        - notify_assignees: true
    
    
    

    Parameters

    Parameter In Type Required Description
    custom_field_ids[] query integer(int32) false Filter Matter's custom_field_values to only include values for the given custom field unique identifiers.
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Matter.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» billable body boolean false Whether or not the matter is billable.
    »» client body object false No description
    »»» id body integer(int32) false The unique identifier for a single Contact associated with the Matter. The keyword null is not valid for this field.
    »» client_reference body string false Client Reference string for external uses.
    »» close_date body string(date) false Date the Matter was set to closed. (Expects an ISO-8601 date).
    »» custom_field_values body [object] false No description
    »»» value body string false The value of the CustomFieldValue.
    »»» custom_field body object false No description
    »»»» id body integer(int32) false The unique identifier for a single CustomField associated with the CustomFieldValue. The keyword null is not valid for this field.
    »»» id body integer(int32) false The unique identifier for a single CustomFieldValue associated with the Matter. The keyword null is not valid for this field.
    »»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated CustomFieldValue is present, the CustomFieldValue is deleted from the Matter.
    »» custom_rate body object false No description
    »»» type body string false The type of custom rate for the Matter.
    »»» rates body [object] false No description
    »»»» user body object false No description
    »»»»» id body integer(int32) false The unique identifier for a single User associated with the Rate. The keyword null is not valid for this field.
    »»»» award body number(double) false The full amount of the award given. Only valid for ContingencyFee. If given as an empty string, it will reset the ContingencyFee into the unawarded state.
    »»»» note body string false Detailed description of the rate. Only valid for ContingencyFee.
    »»»» date body string(date) false The date the rate is for. Only valid for ContingencyFee. (Expects an ISO-8601 date).
    »»»» rate body number(double) false If type is HourlyRate, it is the dollar amount of the custom rate of the User or Group for the Matter.
    »»»» id body integer(int32) false The unique identifier for a single Rate associated with the Matter. The keyword null is not valid for this field.
    »»»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated Rate is present, the Rate is deleted from the Matter.
    »»»» activity_description body object false No description
    »»»»» id body integer(int32) false The unique identifier for a single ActivityDescription associated with the Rate. The keyword null is not valid for this field.
    »»»» group body object false No description
    »»»»» id body integer(int32) false The unique identifier for a single Group associated with the Rate. The keyword null is not valid for this field.
    »»»» description body string false Detailed description of the Matter.
    »»»» display_number body string false Matter reference and label. Depending on the account's manual_matter_numbering setting, this is either read only (generated), or customizable.
    »»»» group body object false No description
    »»»»» id body integer(int32) false The unique identifier for a single Group associated with the Matter. Use the keyword null to specify no association.
    »»»» location body string false Location of the Matter.
    »»»» matter_budget body object false No description
    »»»»» _destroy body boolean false Determines whether the matter budget associated with the matter should be destroyed. Only users with matter budget destroy capabilities can destroy matter budgets.
    »»»»» budget body number(double) false The amount allocated for the matter.
    »»»»» include_expenses body boolean false Determines whether the the budget includes expenses in the calculation.
    »»»»» notification_threshold body integer(int32) false Percentage of the budget when it starts notifying users.
    »»»»» notify_users body boolean false Determine whether to notify users when the matter reaches the notification threshold.
    »»»» open_date body string(date) false Date the Matter was set to open. (Expects an ISO-8601 date).
    »»»» originating_attorney body object false No description
    »»»»» id body integer(int32) false The unique identifier for a single User associated with the Matter. The keyword null is not valid for this field.
    »»»» pending_date body string(date) false Date the Matter was set to pending. (Expects an ISO-8601 date).
    »»»» practice_area body object false No description
    »»»»» id body integer(int32) false The unique identifier for a single PracticeArea associated with the Matter. Use the keyword null to specify no association.
    »»»» relationships body [object] false No description
    »»»»» description body string false Describe the relationship between a Contact and a Matter.
    »»»»» contact body object false No description
    »»»»»» id body integer(int32) false The unique identifier for a single Contact associated with the Relationship. The keyword null is not valid for this field.
    »»»»» id body integer(int32) false The unique identifier for a single Relationship associated with the Matter. The keyword null is not valid for this field.
    »»»»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated Relationship is present, the Relationship is deleted from the Matter.
    »»»» reset_matter_number body boolean false Defaults to false. Resets the matter's number based on the account's matter numbering scheme.
    »»»» responsible_attorney body object false No description
    »»»»» id body integer(int32) false The unique identifier for a single User associated with the Matter. The keyword null is not valid for this field.
    »»»» status body string false Matter status.
    »»»» statute_of_limitations body object false No description
    »»»»» status body string false The task status of Statue of Limitations. Users without advanced tasks are allowed to select Complete' orPending` only.
    »»»»» due_at body string(date) false The due date of Statute of Limitations. (Expects an ISO-8601 date).
    »»»»» reminders body [object] false No description
    »»»»»» duration_value body integer(int32) false Time measured in duration_unit to remind user before the subject.
    »»»»»» duration_unit body string false Unit to measure the duration value in.
    »»»»»» notification_method body object false No description
    »»»»»»» id body integer(int32) false The unique identifier for a single NotificationMethod associated with the Reminder. The keyword null is not valid for this field.
    »»»»»» id body integer(int32) false The unique identifier for a single Reminder associated with the Matter. The keyword null is not valid for this field.
    »»»»»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated Reminder is present, the Reminder is deleted from the Matter.
    »»»»» task_template_list_instances body [object] false No description
    »»»»»» notify_assignees body boolean false Whether or not task list assignees should be notified when the task list is assigned to a matter.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    »»»» rate: If type is HourlyRate, it is the dollar amount of the custom rate of the User or Group for the Matter.

    If type is FlatRate, it is the dollar amount of the custom flat rate for the Matter.

    If type is ContingencyFee, it is the percentage of the contingency fee awarded to the user for the Matter.

    Enumerated Values

    Parameter Value
    »»» type FlatRate
    »»» type HourlyRate
    »»» type ContingencyFee
    »»»» status open
    »»»» status closed
    »»»» status pending
    »»»»» status pending
    »»»»» status in_progress
    »»»»» status in_review
    »»»»» status complete

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok MatterShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Matter#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/matters/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/matters/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/matters/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/matters/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/matters/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/matters/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/matters/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /matters/{id}.json

    Delete a single Matter

    Outlines the parameters, optional and required, used when deleting the record for a single Matter

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Matter.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Notes

    Notes can be added to Matters or Contacts in Clio to record meeting notes, research, or anything else a user might want. The field can hold hundreds of pages, so users can add plenty of information.

    Notes can be found either on the Matters or Contacts page under the Notes sub tab.

    Support Link

    Note#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/notes.json?type=Matter \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/notes.json?type=Matter HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/notes.json',
      method: 'get',
      data: '?type=Matter',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/notes.json?type=Matter',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/notes.json',
      params: {
      'type' => 'string'
    }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/notes.json', params={
      'type': 'Matter'
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/notes.json?type=Matter");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /notes.json

    Return the data for all Notes

    Outlines the parameters, optional and required, used when requesting the data for all Notes

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    contact_id query integer(int32) false The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the Note records with the matching property.
    created_since query string(date-time) false Filter Note records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    has_time_entries query boolean false Filter Note records to those with or without associated time entries.
    ids[] query integer(int32) false Filter Note records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of Note records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the Note records with the matching property.
    order query string false Orders the Note records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search across note subject and detail.
    type query string true Filter Note records to those of the specified type.
    updated_since query string(date-time) false Filter Note records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    has_time_entries true
    has_time_entries false
    order id(asc)
    order id(desc)
    order date(asc)
    order date(desc)
    type Matter
    type Contact

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok NoteList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Note#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/notes.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/notes.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/notes.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "date": "2018-03-22",
        "detail": "string",
        "subject": "string",
        "type": "Matter"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/notes.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/notes.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/notes.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/notes.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /notes.json

    Create a new Note

    Outlines the parameters and data fields used when creating a new Note

    Body parameter

    {
      "data": {
        "date": "2018-03-22",
        "detail": "string",
        "subject": "string",
        "type": "Matter"
      }
    }
    
    data:
      date: '2018-03-22'
      detail: string
      subject: string
      type: Matter
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» date body string(date) false Date for the Note. (Expects an ISO-8601 date).
    »» detail body string false Note body.
    »» subject body string false Note subject.
    »» type body string true Note type.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» type Matter
    »» type Contact

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created NoteShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Note#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/notes/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/notes/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/notes/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/notes/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/notes/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/notes/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/notes/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /notes/{id}.json

    Return the data for a single Note

    Outlines the parameters, optional and required, used when requesting the data for a single Note

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Note.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok NoteShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Note#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/notes/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/notes/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/notes/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "date": "2018-03-22",
        "detail": "string",
        "subject": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/notes/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/notes/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/notes/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/notes/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /notes/{id}.json

    Update a single Note

    Outlines the parameters and data fields used when updating a single Note

    Body parameter

    {
      "data": {
        "date": "2018-03-22",
        "detail": "string",
        "subject": "string"
      }
    }
    
    data:
      date: '2018-03-22'
      detail: string
      subject: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Note.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» date body string(date) false Date for the Note. (Expects an ISO-8601 date).
    »» detail body string false Note body.
    »» subject body string false Note subject.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok NoteShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Note#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/notes/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/notes/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/notes/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/notes/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/notes/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/notes/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/notes/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /notes/{id}.json

    Delete a single Note

    Outlines the parameters, optional and required, used when deleting the record for a single Note

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Note.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Practice Areas

    The practice area field can be added to Matters and used for filtering purposes, or just for reference. Users can create their own practice areas.

    Support link Practice areas settings

    PracticeArea#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/practice_areas.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/practice_areas.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/practice_areas.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/practice_areas.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/practice_areas.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/practice_areas.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/practice_areas.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /practice_areas.json

    Return the data for all PracticeAreas

    Outlines the parameters, optional and required, used when requesting the data for all PracticeAreas

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    code query string false Filter PracticeArea records to those that match the given code.
    created_since query string(date-time) false Filter PracticeArea records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter PracticeArea records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of PracticeArea records to be returned. Limit can range between 1 and 200. Default: 200.
    name query string false Filter PracticeArea records to those that match the given name.
    order query string false Orders the PracticeArea records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    updated_since query string(date-time) false Filter PracticeArea records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)
    order name(asc)
    order name(desc)
    order code(asc)
    order code(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok PracticeAreaList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    PracticeArea#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/practice_areas.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/practice_areas.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/practice_areas.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "code": "string",
        "name": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/practice_areas.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/practice_areas.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/practice_areas.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/practice_areas.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /practice_areas.json

    Create a new PracticeArea

    Outlines the parameters and data fields used when creating a new PracticeArea

    Body parameter

    {
      "data": {
        "code": "string",
        "name": "string"
      }
    }
    
    data:
      code: string
      name: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body PracticeArea_createBody false JSON body
    » data body object true No description
    »» code body string false The code attached to the PracticeArea.
    »» name body string false Name of the PracticeArea.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created PracticeAreaShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    PracticeArea#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/practice_areas/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/practice_areas/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/practice_areas/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/practice_areas/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/practice_areas/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/practice_areas/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/practice_areas/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /practice_areas/{id}.json

    Return the data for a single PracticeArea

    Outlines the parameters, optional and required, used when requesting the data for a single PracticeArea

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the PracticeArea.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok PracticeAreaShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    PracticeArea#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/practice_areas/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/practice_areas/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/practice_areas/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "code": "string",
        "name": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/practice_areas/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/practice_areas/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/practice_areas/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/practice_areas/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /practice_areas/{id}.json

    Update a single PracticeArea

    Outlines the parameters and data fields used when updating a single PracticeArea

    Body parameter

    {
      "data": {
        "code": "string",
        "name": "string"
      }
    }
    
    data:
      code: string
      name: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the PracticeArea.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body PracticeArea_createBody false JSON body
    » data body object true No description
    »» code body string false The code attached to the PracticeArea.
    »» name body string false Name of the PracticeArea.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok PracticeAreaShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    PracticeArea#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/practice_areas/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/practice_areas/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/practice_areas/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/practice_areas/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/practice_areas/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/practice_areas/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/practice_areas/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /practice_areas/{id}.json

    Delete a single PracticeArea

    Outlines the parameters, optional and required, used when deleting the record for a single PracticeArea

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the PracticeArea.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Relationships

    Relationships are used on a Matter to track Contacts related to the Matter. Relationships are can be found on the Contacts sub tab of a Matter.

    Support Link

    Relationships are used on the Matter detail page under the Contacts tab.

    Relationship#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/relationships.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/relationships.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/relationships.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/relationships.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/relationships.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/relationships.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/relationships.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /relationships.json

    Return the data for all Relationships

    Outlines the parameters, optional and required, used when requesting the data for all Relationships

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    contact_id query integer(int32) false The unique identifier for a single Contact. The keyword null is not valid for this field. The list will be filtered to include only the Relationship records with the matching property.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of Relationship records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. The keyword null is not valid for this field. The list will be filtered to include only the Relationship records with the matching property.
    page_token query integer(int32) false A token specifying which page to return.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok RelationshipList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Relationship#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/relationships.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/relationships.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/relationships.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "contact": {
          "id": 0
        },
        "description": "string",
        "matter": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/relationships.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/relationships.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/relationships.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/relationships.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /relationships.json

    Create a new Relationship

    Outlines the parameters and data fields used when creating a new Relationship

    Body parameter

    {
      "data": {
        "contact": {
          "id": 0
        },
        "description": "string",
        "matter": {
          "id": 0
        }
      }
    }
    
    data:
      contact:
        id: 0
      description: string
      matter:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body Relationship_createBody false JSON body
    » data body object true No description
    »» contact body object false No description
    »»» id body integer(int32) false The unique identifier for a single Contact associated with the Relationship. The keyword null is not valid for this field.
    »» description body string false Describe the relationship between a Contact and a Matter.
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the Relationship. The keyword null is not valid for this field.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created RelationshipShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Relationship#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/relationships/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/relationships/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/relationships/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/relationships/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/relationships/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/relationships/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/relationships/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /relationships/{id}.json

    Return the data for a single Relationship

    Outlines the parameters, optional and required, used when requesting the data for a single Relationship

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Relationship.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok RelationshipShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Relationship#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/relationships/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/relationships/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/relationships/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "contact": {
          "id": 0
        },
        "description": "string",
        "matter": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/relationships/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/relationships/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/relationships/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/relationships/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /relationships/{id}.json

    Update a single Relationship

    Outlines the parameters and data fields used when updating a single Relationship

    Body parameter

    {
      "data": {
        "contact": {
          "id": 0
        },
        "description": "string",
        "matter": {
          "id": 0
        }
      }
    }
    
    data:
      contact:
        id: 0
      description: string
      matter:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Relationship.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body Relationship_createBody false JSON body
    » data body object true No description
    »» contact body object false No description
    »»» id body integer(int32) false The unique identifier for a single Contact associated with the Relationship. The keyword null is not valid for this field.
    »» description body string false Describe the relationship between a Contact and a Matter.
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the Relationship. The keyword null is not valid for this field.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok RelationshipShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Relationship#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/relationships/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/relationships/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/relationships/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/relationships/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/relationships/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/relationships/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/relationships/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /relationships/{id}.json

    Delete a single Relationship

    Outlines the parameters, optional and required, used when deleting the record for a single Relationship

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Relationship.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Reminders

    Reminders can be added to Tasks or Calendar Entries. Reminder emails can be sent by a User to themself, to other Users, to Clio Connect Contacts, or to any authorized email. An in-Clio pop-up reminder can also be sent by a User to themself.

    Support Link

    Reminder#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/reminders.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/reminders.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/reminders.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/reminders.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/reminders.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/reminders.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/reminders.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /reminders.json

    Return the data for all Reminders

    Outlines the parameters, optional and required, used when requesting the data for all Reminders

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of Reminder records to be returned. Limit can range between 1 and 200. Default: 200.
    notification_method_id query integer(int32) false The unique identifier for a single NotificationMethod. The keyword null is not valid for this field. The list will be filtered to include only the Reminder records with the matching property.
    order query string false Orders the Reminder records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    state query string false Filter Reminder records to those with a given state.
    subject_id query integer(int32) false The unique identifier for a single CalendarEntry or Task. The keyword null is not valid for this field. The list will be filtered to include only the Reminder records with the matching property.
    subject_type query string false Filter Reminder records to those of a given subject type, required if using subject_id.
    user_id query integer(int32) false The unique identifier for a single User. The keyword null is not valid for this field. The list will be filtered to include only the Reminder records with the matching property.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order next_delivery_at(asc)
    order next_delivery_at(desc)
    order id(asc)
    order id(desc)
    state initializing
    state scheduling
    state rescheduling
    state scheduled
    state attempting_delivery
    state delivery_failed
    state delivered
    state delivery_skipped
    state invalid_user
    subject_type calendar_entry
    subject_type task

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ReminderList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Reminder#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/reminders.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/reminders.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/reminders.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "duration_unit": "weeks",
        "duration_value": 0,
        "notification_method": {
          "id": 0
        },
        "subject": {
          "id": 0,
          "type": "CalendarEntry"
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/reminders.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/reminders.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/reminders.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/reminders.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /reminders.json

    Create a new Reminder

    Outlines the parameters and data fields used when creating a new Reminder

    Body parameter

    {
      "data": {
        "duration_unit": "weeks",
        "duration_value": 0,
        "notification_method": {
          "id": 0
        },
        "subject": {
          "id": 0,
          "type": "CalendarEntry"
        }
      }
    }
    
    data:
      duration_unit: weeks
      duration_value: 0
      notification_method:
        id: 0
      subject:
        id: 0
        type: CalendarEntry
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» duration_unit body string false Unit to measure the duration value in.
    »» duration_value body integer(int32) false Time measured in duration_unit to remind user before the subject.
    »» notification_method body object true No description
    »»» id body integer(int32) true The unique identifier for a single NotificationMethod associated with the Reminder. The keyword null is not valid for this field.
    »» subject body object true No description
    »»» id body integer(int32) true The unique identifier for a single CalendarEntry and Task associated with the Reminder. The keyword null is not valid for this field.
    »»» type body string true Model type of the Subject.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» duration_unit weeks
    »» duration_unit days
    »» duration_unit hours
    »» duration_unit minutes
    »»» type CalendarEntry
    »»» type Task

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created ReminderShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Reminder#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/reminders/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/reminders/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/reminders/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/reminders/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/reminders/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/reminders/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/reminders/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /reminders/{id}.json

    Return the data for a single Reminder

    Outlines the parameters, optional and required, used when requesting the data for a single Reminder

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Reminder.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ReminderShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Reminder#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/reminders/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/reminders/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/reminders/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "duration_unit": "weeks",
        "duration_value": 0,
        "notification_method": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/reminders/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/reminders/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/reminders/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/reminders/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /reminders/{id}.json

    Update a single Reminder

    Outlines the parameters and data fields used when updating a single Reminder

    Body parameter

    {
      "data": {
        "duration_unit": "weeks",
        "duration_value": 0,
        "notification_method": {
          "id": 0
        }
      }
    }
    
    data:
      duration_unit: weeks
      duration_value: 0
      notification_method:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Reminder.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» duration_unit body string false Unit to measure the duration value in.
    »» duration_value body integer(int32) false Time measured in duration_unit to remind user before the subject.
    »» notification_method body object false No description
    »»» id body integer(int32) false The unique identifier for a single NotificationMethod associated with the Reminder. The keyword null is not valid for this field.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» duration_unit weeks
    »» duration_unit days
    »» duration_unit hours
    »» duration_unit minutes

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ReminderShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Reminder#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/reminders/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/reminders/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/reminders/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/reminders/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/reminders/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/reminders/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/reminders/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /reminders/{id}.json

    Delete a single Reminder

    Outlines the parameters, optional and required, used when deleting the record for a single Reminder

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Reminder.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Reports

    Report#download

    Code samples

    # You can also use wget
    curl -X GET /api/v4/reports/{id}/download.json \
      -H 'Accept: */*'
    
    
    
    GET /api/v4/reports/{id}/download.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    
    
    
    var headers = {
      'Accept':'*/*'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/reports/{id}/download.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*'
    
    
    };
    
    
    fetch('/api/v4/reports/{id}/download.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*'
    }
    
    
    result = RestClient.get '/api/v4/reports/{id}/download.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*'
    }
    
    
    r = requests.get('/api/v4/reports/{id}/download.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/reports/{id}/download.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /reports/{id}/download.json

    Download the completed Report

    Download the completed Report

    Parameters

    Parameter In Type Required Description
    id path integer(int32) true The unique identifier for the Report.

    Example responses

    Responses

    Status Meaning Description Schema
    303 See Other See Other None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Report#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/reports.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    POST /api/v4/reports.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/reports.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "client": {
          "id": 0
        },
        "end_date": "2018-03-22",
        "format": "pdf",
        "kind": "revenue",
        "matter": {
          "id": 0
        },
        "originating_attorney": {
          "id": 0
        },
        "practice_area": {
          "id": 0
        },
        "responsible_attorney": {
          "id": 0
        },
        "start_date": "2018-03-22",
        "user": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/reports.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.post '/api/v4/reports.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.post('/api/v4/reports.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/reports.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /reports.json

    Create a new Report

    Outlines the parameters and data fields used when creating a new Report

    Body parameter

    {
      "data": {
        "client": {
          "id": 0
        },
        "end_date": "2018-03-22",
        "format": "pdf",
        "kind": "revenue",
        "matter": {
          "id": 0
        },
        "originating_attorney": {
          "id": 0
        },
        "practice_area": {
          "id": 0
        },
        "responsible_attorney": {
          "id": 0
        },
        "start_date": "2018-03-22",
        "user": {
          "id": 0
        }
      }
    }
    
    data:
      client:
        id: 0
      end_date: '2018-03-22'
      format: pdf
      kind: revenue
      matter:
        id: 0
      originating_attorney:
        id: 0
      practice_area:
        id: 0
      responsible_attorney:
        id: 0
      start_date: '2018-03-22'
      user:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» client body object false No description
    »»» id body integer(int32) false The unique identifier for a single Contact associated with the Report. The keyword null is not valid for this field.
    »» end_date body string(date) false Filters Report data by date. (Expects an ISO-8601 date).
    »» format body string true What format the Report will be generated in.
    »» kind body string true What kind of Report will be generated.
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the Report. The keyword null is not valid for this field.
    »» originating_attorney body object false No description
    »»» id body integer(int32) false The unique identifier for a single User associated with the Report. The keyword null is not valid for this field.
    »» practice_area body object false No description
    »»» id body integer(int32) false The unique identifier for a single PracticeArea associated with the Report. The keyword null is not valid for this field.
    »» responsible_attorney body object false No description
    »»» id body integer(int32) false The unique identifier for a single User associated with the Report. The keyword null is not valid for this field.
    »» start_date body string(date) false Filters Report data by date. (Expects an ISO-8601 date).
    »» user body object false No description
    »»» id body integer(int32) false The unique identifier for a single User associated with the Report. The keyword null is not valid for this field.

    Enumerated Values

    Parameter Value
    »» format pdf
    »» format csv
    »» format html
    »» kind revenue
    »» kind fee_allocation

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created ReportShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Report#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/reports/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/reports/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/reports/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/reports/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/reports/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/reports/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/reports/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /reports/{id}.json

    Return the data for a single Report

    Outlines the parameters, optional and required, used when requesting the data for a single Report

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Report.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ReportShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Billing Settings

    BillingSetting#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/settings/billing.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/settings/billing.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/settings/billing.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/settings/billing.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/settings/billing.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/settings/billing.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/settings/billing.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /settings/billing.json

    Return the billing settings

    Outlines the parameters, optional and required, used when requesting the data for a single BillingSetting

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    duration query string false Duration string for time rounding, conforming to the Chronic date parser. For example: '3h' or '2:15'.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok BillingSettingShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Text Snippets

    Clio's Text Snippets feature allows users to create a list of predefined abbreviations for commonly used phrases. For example, a user could configure their settings to have “meeting with client” show up whenever they type “mwc.”

    This feature can be used in various field in Clio, such as the Matter Description, Note Detail, Calendar Entry Description and Task Description fields.

    Text snippets are created and configured in the Clio settings menu.

    Support link

    TextSnippet#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/settings/text_snippets.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/settings/text_snippets.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/settings/text_snippets.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/settings/text_snippets.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/settings/text_snippets.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/settings/text_snippets.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/settings/text_snippets.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /settings/text_snippets.json

    Return all text snippets

    Outlines the parameters, optional and required, used when requesting the data for all TextSnippets

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    created_since query string(date-time) false Filter TextSnippet records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter TextSnippet records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of TextSnippet records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the TextSnippet records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for snippet or phrase matching a given string.
    updated_since query string(date-time) false Filter TextSnippet records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)
    order snippet(asc)
    order snippet(desc)
    order phrase(asc)
    order phrase(desc)
    order whole_word(asc)
    order whole_word(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TextSnippetList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    TextSnippet#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/settings/text_snippets.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/settings/text_snippets.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/settings/text_snippets.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "phrase": "string",
        "snippet": "string",
        "whole_word": true
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/settings/text_snippets.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/settings/text_snippets.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/settings/text_snippets.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/settings/text_snippets.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /settings/text_snippets.json

    Create a text snippet

    Outlines the parameters and data fields used when creating a new TextSnippet

    Body parameter

    {
      "data": {
        "phrase": "string",
        "snippet": "string",
        "whole_word": true
      }
    }
    
    data:
      phrase: string
      snippet: string
      whole_word: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» phrase body string true The phrase expanded to from a TextSnippet.
    »» snippet body string true The abbreviation that expands to a phrase.
    »» whole_word body boolean false Whether or not the TextSnippet requires a space after to trigger the expansion.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created TextSnippetShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    TextSnippet#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/settings/text_snippets/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/settings/text_snippets/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/settings/text_snippets/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/settings/text_snippets/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/settings/text_snippets/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/settings/text_snippets/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/settings/text_snippets/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /settings/text_snippets/{id}.json

    Return the data for the text snippet

    Outlines the parameters, optional and required, used when requesting the data for a single TextSnippet

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the TextSnippet.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TextSnippetShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    TextSnippet#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/settings/text_snippets/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/settings/text_snippets/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/settings/text_snippets/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "phrase": "string",
        "snippet": "string",
        "whole_word": true
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/settings/text_snippets/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/settings/text_snippets/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/settings/text_snippets/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/settings/text_snippets/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /settings/text_snippets/{id}.json

    Update a text snippet

    Outlines the parameters and data fields used when updating a single TextSnippet

    Body parameter

    {
      "data": {
        "phrase": "string",
        "snippet": "string",
        "whole_word": true
      }
    }
    
    data:
      phrase: string
      snippet: string
      whole_word: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the TextSnippet.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» phrase body string false The phrase expanded to from a TextSnippet.
    »» snippet body string false The abbreviation that expands to a phrase.
    »» whole_word body boolean false Whether or not the TextSnippet requires a space after to trigger the expansion.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TextSnippetShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    TextSnippet#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/settings/text_snippets/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/settings/text_snippets/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/settings/text_snippets/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/settings/text_snippets/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/settings/text_snippets/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/settings/text_snippets/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/settings/text_snippets/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /settings/text_snippets/{id}.json

    Destroy a text snippet

    Outlines the parameters, optional and required, used when deleting the record for a single TextSnippet

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the TextSnippet.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Tasks

    Tasks are used to assign and track work. Users can set priorities, due dates, and add reminders.

    Tasks can be assigned to firm users as well as Contacts (such as clients or co-counsel).

    Support Link

    Tasks in Clio

    Task#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/tasks.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/tasks.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/tasks.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/tasks.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/tasks.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/tasks.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/tasks.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /tasks.json

    Return the data for all Tasks

    Outlines the parameters, optional and required, used when requesting the data for all Tasks

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    assignee_id query integer(int32) false The unique identifier for a single User or Contact. Use the keyword null to match those without a Task. The list will be filtered to include only the Task records with the matching property.
    assignee_type query string false Filter Task records to those with a specific assignee. Must be passed if filtering by assignee.
    assigner_id query integer(int32) false The unique identifier for a single User. Use the keyword null to match those without a Task. The list will be filtered to include only the Task records with the matching property.
    created_since query string(date-time) false Filter Task records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    due_at_from query string(date) false Start of date range when querying by due_at in a range. (Expects an ISO-8601 date).
    due_at_to query string(date) false End of date range when querying by due_at in a range. (Expects an ISO-8601 date).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter Task records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of Task records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. Use the keyword null to match those without a Task. The list will be filtered to include only the Task records with the matching property.
    order query string false Orders the Task records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    priority query string false Filter Task records to those with the given priority.
    query query string false Wildcard search for name matching a given string.
    status query integer(int32) false Filter Task records to those with the given status. Users without advanced tasks enabled may only specify 'complete' or 'pending'.
    statute_of_limitations query boolean false Filter Task records to those which are a statute of limitations or not.
    task_type_id query integer(int32) false The unique identifier for a single TaskType. Use the keyword null to match those without a Task. The list will be filtered to include only the Task records with the matching property.
    updated_since query string(date-time) false Filter Task records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    assignee_type user
    assignee_type contact
    order name(asc)
    order name(desc)
    order id(asc)
    order id(desc)
    order priority(asc)
    order priority(desc)
    priority high
    priority normal
    priority low
    status pending
    status in_progress
    status in_review
    status complete

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TaskList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Task#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/tasks.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/tasks.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/tasks.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "assignee": {
          "id": 0,
          "type": "User"
        },
        "description": "string",
        "due_at": "2018-03-22T20:30:34Z",
        "matter": {
          "id": 0
        },
        "name": "string",
        "notify_assignee": true,
        "notify_completion": true,
        "priority": "Normal",
        "status": "pending",
        "statute_of_limitations": true,
        "task_type": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/tasks.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/tasks.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/tasks.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/tasks.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /tasks.json

    Create a new Task

    Outlines the parameters and data fields used when creating a new Task

    Body parameter

    {
      "data": {
        "assignee": {
          "id": 0,
          "type": "User"
        },
        "description": "string",
        "due_at": "2018-03-22T20:30:34Z",
        "matter": {
          "id": 0
        },
        "name": "string",
        "notify_assignee": true,
        "notify_completion": true,
        "priority": "Normal",
        "status": "pending",
        "statute_of_limitations": true,
        "task_type": {
          "id": 0
        }
      }
    }
    
    data:
      assignee:
        id: 0
        type: User
      description: string
      due_at: '2018-03-22T20:30:34Z'
      matter:
        id: 0
      name: string
      notify_assignee: true
      notify_completion: true
      priority: Normal
      status: pending
      statute_of_limitations: true
      task_type:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» assignee body object true No description
    »»» id body integer(int32) true The unique identifier for a single User or Contact associated with the Task. The keyword null is not valid for this field.
    »»» type body string true Model type of the assignee.
    »» description body string true Longer description of the Task.
    »» due_at body string(date-time) false Date when the Task must be completed by. (Expects an ISO-8601 date).
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the Task. The keyword null is not valid for this field.
    »» name body string true Name of the Task.
    »» notify_assignee body boolean false Whether or not the Task should notify the assignee on creation.
    »» notify_completion body boolean false Whether or not the Task should notify the assigner on completion.
    »» priority body string false Priority of the Task.
    »» status body string false Task status. Users without advanced tasks are allowed to select Complete or Pending only.
    »» statute_of_limitations body boolean false Whether or not the Task should be a statute of limitations.
    »» task_type body object false No description
    »»» id body integer(int32) false The unique identifier for a single TaskType associated with the Task. The keyword null is not valid for this field.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »»» type User
    »»» type Contact
    »» priority High
    »» priority Normal
    »» priority Low
    »» status pending
    »» status in_progress
    »» status in_review
    »» status complete

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created TaskShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Task#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/tasks/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/tasks/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/tasks/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/tasks/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/tasks/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/tasks/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/tasks/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /tasks/{id}.json

    Return the data for a single Task

    Outlines the parameters, optional and required, used when requesting the data for a single Task

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Task.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TaskShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Task#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/tasks/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/tasks/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/tasks/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "assignee": {
          "id": 0,
          "type": "User"
        },
        "description": "string",
        "due_at": "2018-03-22T20:30:34Z",
        "matter": {
          "id": 0
        },
        "name": "string",
        "notify_completion": true,
        "priority": "Normal",
        "status": "pending",
        "task_type": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/tasks/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/tasks/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/tasks/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/tasks/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /tasks/{id}.json

    Update a single Task

    Outlines the parameters and data fields used when updating a single Task

    Body parameter

    {
      "data": {
        "assignee": {
          "id": 0,
          "type": "User"
        },
        "description": "string",
        "due_at": "2018-03-22T20:30:34Z",
        "matter": {
          "id": 0
        },
        "name": "string",
        "notify_completion": true,
        "priority": "Normal",
        "status": "pending",
        "task_type": {
          "id": 0
        }
      }
    }
    
    data:
      assignee:
        id: 0
        type: User
      description: string
      due_at: '2018-03-22T20:30:34Z'
      matter:
        id: 0
      name: string
      notify_completion: true
      priority: Normal
      status: pending
      task_type:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Task.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» assignee body object false No description
    »»» id body integer(int32) false The unique identifier for a single User or Contact associated with the Task. The keyword null is not valid for this field.
    »»» type body string false Model type of the assignee.
    »» description body string false Longer description of the Task.
    »» due_at body string(date-time) false Date when the Task must be completed by. (Expects an ISO-8601 date).
    »» matter body object false No description
    »»» id body integer(int32) false The unique identifier for a single Matter associated with the Task. The keyword null is not valid for this field.
    »» name body string false Name of the Task.
    »» notify_completion body boolean false Whether or not the Task should notify the assigner on completion.
    »» priority body string false Priority of the Task.
    »» status body string false Task status. Users without advanced tasks are allowed to select Complete or Pending only.
    »» task_type body object false No description
    »»» id body integer(int32) false The unique identifier for a single TaskType associated with the Task. The keyword null is not valid for this field.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »»» type User
    »»» type Contact
    »» priority High
    »» priority Normal
    »» priority Low
    »» status pending
    »» status in_progress
    »» status in_review
    »» status complete

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TaskShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Task#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/tasks/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/tasks/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/tasks/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/tasks/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/tasks/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/tasks/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/tasks/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /tasks/{id}.json

    Delete a single Task

    Outlines the parameters, optional and required, used when deleting the record for a single Task

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Task.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Calendar Visibilities

    CalendarVisibility#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/task_calendars.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/task_calendars.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_calendars.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/task_calendars.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/task_calendars.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/task_calendars.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_calendars.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /task_calendars.json

    Return the data for all CalendarVisibilities

    Outlines the parameters, optional and required, used when requesting the data for all CalendarVisibilities

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of CalendarVisibility records to be returned. Limit can range between 1 and 200. Default: 200.
    page_token query integer(int32) false A token specifying which page to return.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CalendarVisibilityList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    CalendarVisibility#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/task_calendars/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/task_calendars/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_calendars/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/task_calendars/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/task_calendars/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/task_calendars/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_calendars/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /task_calendars/{id}.json

    Return the data for a single CalendarVisibility

    Outlines the parameters, optional and required, used when requesting the data for a single CalendarVisibility

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the CalendarVisibility.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CalendarVisibilityShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    CalendarVisibility#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/task_calendars/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    PATCH /api/v4/task_calendars/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_calendars/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "color": "#6690ff",
        "visible": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/task_calendars/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.patch '/api/v4/task_calendars/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.patch('/api/v4/task_calendars/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_calendars/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /task_calendars/{id}.json

    Update a single CalendarVisibility

    Outlines the parameters and data fields used when updating a single CalendarVisibility

    Body parameter

    {
      "data": {
        "color": "#6690ff",
        "visible": "string"
      }
    }
    
    data:
      color: '#6690ff'
      visible: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the CalendarVisibility.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» color body string false Calendar color as seen in the Clio Web UI.
    »» visible body string false Whether or not the CalendarVisibility should be visible by default in the Clio Web UI.

    Enumerated Values

    Parameter Value
    »» color #6690ff
    »» color #f95957
    »» color #209412
    »» color #ff7715
    »» color #ce85ca
    »» color #c69000
    »» color #00ceff
    »» color #00b177
    »» color #50d19b
    »» color #f14a8c
    »» color #afb12a
    »» color #84ab3b
    »» color #b091ee
    »» color #bd9e69
    »» color #f2a000
    »» color #00a5ca
    »» color #cb5a3d
    »» color #959cd0
    »» color #b0b0b0
    »» color #7ba6cd

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok CalendarVisibilityShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Task Templates

    Task Templates are the individual Tasks which comprise a Task Template List.

    Support Link

    TaskTemplate#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/task_templates.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/task_templates.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_templates.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/task_templates.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/task_templates.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/task_templates.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_templates.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /task_templates.json

    Return the data for all TaskTemplates

    Outlines the parameters, optional and required, used when requesting the data for all TaskTemplates

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of TaskTemplate records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the TaskTemplate records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    priority query string false Filter TaskTemplate records to those with the given priority.
    query query string false Wildcard search for name matching a given string.
    task_template_list_id query integer(int32) false The unique identifier for a single TaskTemplateList. The keyword null is not valid for this field. The list will be filtered to include only the TaskTemplate records with the matching property.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)
    order name(asc)
    order name(desc)
    order priority(asc)
    order priority(desc)
    priority high
    priority normal
    priority low

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TaskTemplateList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    TaskTemplate#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/task_templates.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/task_templates.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_templates.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "description": "string",
        "name": "string",
        "priority": "Normal",
        "private": true,
        "reminder_templates": [
          {
            "duration_value": 0,
            "duration_unit": "string"
          }
        ],
        "task_template_list": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/task_templates.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/task_templates.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/task_templates.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_templates.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /task_templates.json

    Create a new TaskTemplate

    Outlines the parameters and data fields used when creating a new TaskTemplate

    Body parameter

    {
      "data": {
        "description": "string",
        "name": "string",
        "priority": "Normal",
        "private": true,
        "reminder_templates": [
          {
            "duration_value": 0,
            "duration_unit": "string"
          }
        ],
        "task_template_list": {
          "id": 0
        }
      }
    }
    
    data:
      description: string
      name: string
      priority: Normal
      private: true
      reminder_templates:
        - duration_value: 0
          duration_unit: string
      task_template_list:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» description body string false Longer description for the TaskTemplate.
    »» name body string true Short name for the TaskTemplate.
    »» priority body string false Priority of the task.
    »» private body boolean false Whether or not this TaskTemplate should be private.
    »» reminder_templates body [object] false No description
    »»» duration_value body integer(int32) true Time measured in duration_unit to remind user before the subject.
    »»» duration_unit body string true Unit to measure the duration value in.
    »» task_template_list body object false No description
    »»» id body integer(int32) false The unique identifier for a single TaskTemplateList associated with the TaskTemplate. The keyword null is not valid for this field.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» priority High
    »» priority Normal
    »» priority Low

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created TaskTemplateShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    TaskTemplate#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/task_templates/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/task_templates/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_templates/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/task_templates/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/task_templates/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/task_templates/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_templates/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /task_templates/{id}.json

    Return the data for a single TaskTemplate

    Outlines the parameters, optional and required, used when requesting the data for a single TaskTemplate

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the TaskTemplate.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TaskTemplateShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    TaskTemplate#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/task_templates/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/task_templates/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_templates/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "description": "string",
        "name": "string",
        "priority": "Normal",
        "private": true,
        "reminder_templates": [
          {
            "duration_value": 0,
            "duration_unit": "string",
            "id": 0,
            "_destroy": true
          }
        ]
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/task_templates/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/task_templates/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/task_templates/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_templates/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /task_templates/{id}.json

    Update a single TaskTemplate

    Outlines the parameters and data fields used when updating a single TaskTemplate

    Body parameter

    {
      "data": {
        "description": "string",
        "name": "string",
        "priority": "Normal",
        "private": true,
        "reminder_templates": [
          {
            "duration_value": 0,
            "duration_unit": "string",
            "id": 0,
            "_destroy": true
          }
        ]
      }
    }
    
    data:
      description: string
      name: string
      priority: Normal
      private: true
      reminder_templates:
        - duration_value: 0
          duration_unit: string
          id: 0
          _destroy: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the TaskTemplate.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» description body string false Longer description for the TaskTemplate.
    »» name body string false Short name for the TaskTemplate.
    »» priority body string false Priority of the task.
    »» private body boolean false Whether or not this TaskTemplate should be private.
    »» reminder_templates body [object] false No description
    »»» duration_value body integer(int32) false Time measured in duration_unit to remind user before the subject.
    »»» duration_unit body string false Unit to measure the duration value in.
    »»» id body integer(int32) false The unique identifier for a single ReminderTemplate associated with the TaskTemplate. The keyword null is not valid for this field.
    »»» _destroy body boolean false The destroy flag. If the flag is set to true and the unique identifier of the associated ReminderTemplate is present, the ReminderTemplate is deleted from the TaskTemplate.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» priority High
    »» priority Normal
    »» priority Low

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TaskTemplateShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    TaskTemplate#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/task_templates/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/task_templates/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_templates/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/task_templates/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/task_templates/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/task_templates/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_templates/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /task_templates/{id}.json

    Delete a single TaskTemplate

    Outlines the parameters, optional and required, used when deleting the record for a single TaskTemplate

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the TaskTemplate.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Task Template Lists

    With Task Template Lists, users can create groups of Task Templates for the types of projects they work on most often. Each Task in a list can be given a separate due date in relation to the due dates for other Tasks in the list.

    Users can then assign individual tasks on a list to different users, or they can batch assign an entire list.

    Support Link

    Task Template Lists in Clio

    TaskTemplateList#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/task_template_lists.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/task_template_lists.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_template_lists.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/task_template_lists.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/task_template_lists.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/task_template_lists.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_template_lists.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /task_template_lists.json

    Return the data for all TaskTemplateLists

    Outlines the parameters, optional and required, used when requesting the data for all TaskTemplateLists

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    empty query boolean false Filter TaskTemplateList records to those that either contain at least one task template or contain none.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of TaskTemplateList records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the TaskTemplateList records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    practice_area_id query integer(int32) false The unique identifier for a single PracticeArea. Use the keyword null to match those without a TaskTemplateList. The list will be filtered to include only the TaskTemplateList records with the matching property.
    query query string false Wildcard search for name matching a given string.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    empty true
    empty false
    order id(asc)
    order id(desc)
    order name(asc)
    order name(desc)
    order practice_area.name(asc)
    order practice_area.name(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TaskTemplateListList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    TaskTemplateList#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/task_template_lists.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/task_template_lists.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_template_lists.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "description": "string",
        "name": "string",
        "practice_area": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/task_template_lists.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/task_template_lists.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/task_template_lists.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_template_lists.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /task_template_lists.json

    Create a new TaskTemplateList

    Outlines the parameters and data fields used when creating a new TaskTemplateList

    Body parameter

    {
      "data": {
        "description": "string",
        "name": "string",
        "practice_area": {
          "id": 0
        }
      }
    }
    
    data:
      description: string
      name: string
      practice_area:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» description body string true Description of the TaskTemplateList.
    »» name body string true Name of the TaskTemplateList.
    »» practice_area body object false No description
    »»» id body integer(int32) false The unique identifier for a single PracticeArea associated with the TaskTemplateList. The keyword null is not valid for this field.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created TaskTemplateListShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    TaskTemplateList#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/task_template_lists/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/task_template_lists/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_template_lists/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/task_template_lists/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/task_template_lists/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/task_template_lists/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_template_lists/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /task_template_lists/{id}.json

    Return the data for a single TaskTemplateList

    Outlines the parameters, optional and required, used when requesting the data for a single TaskTemplateList

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the TaskTemplateList.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TaskTemplateListShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    TaskTemplateList#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/task_template_lists/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/task_template_lists/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_template_lists/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "description": "string",
        "name": "string",
        "practice_area": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/task_template_lists/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/task_template_lists/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/task_template_lists/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_template_lists/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /task_template_lists/{id}.json

    Update a single TaskTemplateList

    Outlines the parameters and data fields used when updating a single TaskTemplateList

    Body parameter

    {
      "data": {
        "description": "string",
        "name": "string",
        "practice_area": {
          "id": 0
        }
      }
    }
    
    data:
      description: string
      name: string
      practice_area:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the TaskTemplateList.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» description body string false Description of the TaskTemplateList.
    »» name body string false Name of the TaskTemplateList.
    »» practice_area body object false No description
    »»» id body integer(int32) false The unique identifier for a single PracticeArea associated with the TaskTemplateList. The keyword null is not valid for this field.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TaskTemplateListShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    TaskTemplateList#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/task_template_lists/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/task_template_lists/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_template_lists/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/task_template_lists/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/task_template_lists/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/task_template_lists/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_template_lists/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /task_template_lists/{id}.json

    Delete a single TaskTemplateList

    Outlines the parameters, optional and required, used when deleting the record for a single TaskTemplateList

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the TaskTemplateList.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Task Types

    Task Types are used to better categorize and filter tasks. This is a simple text field which is limited to 50 characters.

    Task Types are part of the Advanced Tasks feature, available to subscribers to Clio’s Elite plan.

    Support Link

    Used within Clio at Task types

    TaskType#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/task_types.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/task_types.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_types.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/task_types.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/task_types.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/task_types.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_types.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /task_types.json

    Return the data for all TaskTypes

    Outlines the parameters, optional and required, used when requesting the data for all TaskTypes

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of TaskType records to be returned. Limit can range between 1 and 200. Default: 200.
    name query string false Filter TaskType records to those with the given name.
    order query string false Orders the TaskType records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order name(asc)
    order name(desc)
    order id(asc)
    order id(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TaskTypeList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    TaskType#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/task_types.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/task_types.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_types.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "deleted_at": "2018-03-22",
        "name": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/task_types.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/task_types.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/task_types.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_types.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /task_types.json

    Create a new TaskType

    Outlines the parameters and data fields used when creating a new TaskType

    Body parameter

    {
      "data": {
        "deleted_at": "2018-03-22",
        "name": "string"
      }
    }
    
    data:
      deleted_at: '2018-03-22'
      name: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» deleted_at body string(date) false Date the TaskType was disabled. (Expects an ISO-8601 timestamp).
    »» name body string true Name of the TaskType.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created TaskTypeShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    TaskType#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/task_types/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/task_types/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_types/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/task_types/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/task_types/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/task_types/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_types/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /task_types/{id}.json

    Return the data for a single TaskType

    Outlines the parameters, optional and required, used when requesting the data for a single TaskType

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the TaskType.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TaskTypeShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    TaskType#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/task_types/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/task_types/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/task_types/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "deleted_at": "2018-03-22",
        "name": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/task_types/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/task_types/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/task_types/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/task_types/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /task_types/{id}.json

    Update a single TaskType

    Outlines the parameters and data fields used when updating a single TaskType

    Body parameter

    {
      "data": {
        "deleted_at": "2018-03-22",
        "name": "string"
      }
    }
    
    data:
      deleted_at: '2018-03-22'
      name: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the TaskType.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» deleted_at body string(date) false Date the TaskType was disabled. (Expects an ISO-8601 timestamp).
    »» name body string false Name of the TaskType.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TaskTypeShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Timers

    Timers are used to track time spent on billable work. They are used with hourly-billable Time Entries.

    The Timer modal is accessed by clicking the timer in the application's header, or by clicking the Timer icon on a Time Entry.

    Support Link

    Used within Clio in the timer modal which can be accessed by clicking the timer in the header, sidebar, and the time entries table.

    Timer#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/timer.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    POST /api/v4/timer.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/timer.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "activity": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/timer.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.post '/api/v4/timer.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.post('/api/v4/timer.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/timer.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /timer.json

    Create a new Timer

    This action does not support bulk actions

    Body parameter

    {
      "data": {
        "activity": {
          "id": 0
        }
      }
    }
    
    data:
      activity:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» activity body object true No description
    »»» id body integer(int32) true The unique identifier for a single Activity associated with the Timer. The keyword null is not valid for this field.

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created TimerShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Timer#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/timer.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/timer.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/timer.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/timer.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/timer.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/timer.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/timer.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /timer.json

    Return the data for a single Timer

    Outlines the parameters, optional and required, used when requesting the data for a single Timer

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TimerShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Timer#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/timer.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    DELETE /api/v4/timer.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/timer.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/timer.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.delete '/api/v4/timer.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.delete('/api/v4/timer.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/timer.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /timer.json

    Delete a single Timer

    This action does not support bulk actions

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Trust Line Items

    TrustLineItem#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/trust_line_items.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/trust_line_items.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/trust_line_items.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/trust_line_items.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/trust_line_items.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/trust_line_items.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/trust_line_items.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /trust_line_items.json

    Return the data for all TrustLineItems

    Outlines the parameters, optional and required, used when requesting the data for all TrustLineItems

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    bill_id query integer(int32) false The unique identifier for a single Bill. The keyword null is not valid for this field. The list will be filtered to include only the TrustLineItem records with the matching property.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of TrustLineItem records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. Use the keyword null to match those without a TrustLineItem. The list will be filtered to include only the TrustLineItem records with the matching property.
    page_token query integer(int32) false A token specifying which page to return.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TrustLineItemList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    TrustLineItem#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/trust_line_items/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/trust_line_items/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/trust_line_items/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "date": "2018-03-22",
        "note": "string",
        "total": 0
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/trust_line_items/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/trust_line_items/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/trust_line_items/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/trust_line_items/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /trust_line_items/{id}.json

    Update a single TrustLineItem

    Outlines the parameters and data fields used when updating a single TrustLineItem

    Body parameter

    {
      "data": {
        "date": "2018-03-22",
        "note": "string",
        "total": 0
      }
    }
    
    data:
      date: '2018-03-22'
      note: string
      total: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the TrustLineItem.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» date body string(date) false Date for the TrustLineItem. (Expects an ISO-8601 date).
    »» note body string false Note for the TrustLineItem.
    »» total body number(double) false Total amount the TrustLineItem is for.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok TrustLineItemShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Trust Requests

    TrustRequest#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/trust_requests.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/trust_requests.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/trust_requests.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "approved": true,
        "client_id": 0,
        "due_date": "2018-03-22",
        "issue_date": "2018-03-22",
        "matter": {
          "id": 0,
          "trust_amount": 0,
          "note": "string"
        },
        "note": "string",
        "trust_amount": 0,
        "trust_type": "client"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/trust_requests.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/trust_requests.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/trust_requests.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/trust_requests.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /trust_requests.json

    Create a new TrustRequest

    Outlines the parameters and data fields used when creating a new TrustRequest

    Body parameter

    {
      "data": {
        "approved": true,
        "client_id": 0,
        "due_date": "2018-03-22",
        "issue_date": "2018-03-22",
        "matter": {
          "id": 0,
          "trust_amount": 0,
          "note": "string"
        },
        "note": "string",
        "trust_amount": 0,
        "trust_type": "client"
      }
    }
    
    data:
      approved: true
      client_id: 0
      due_date: '2018-03-22'
      issue_date: '2018-03-22'
      matter:
        id: 0
        trust_amount: 0
        note: string
      note: string
      trust_amount: 0
      trust_type: client
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» approved body boolean true Whether or not the TrustRequest should be automatically approved.
    »» client_id body integer(int32) true The client_id associated to the TrustRequest
    »» due_date body string(date) true The date the TrustRequest is due (Expects an ISO-8601 date).
    »» issue_date body string(date) true The date the TrustRequest is issued (Expects an ISO-8601 date).
    »» matter body object false No description
    »»» id body integer(int32) false The matter id associated to the TrustRequest
    »»» trust_amount body integer(int32) false The matter level TrustRequest's amount
    »»» note body string false The client level TrustRequest note
    »» note body string false The client level TrustRequest note
    »» trust_amount body number(double) true The TrustRequest's amount
    »» trust_type body string true The type of TrustRequest

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» trust_type client
    »» trust_type matter

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created TrustRequestShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Users

    A User is anyone with the ability to log in to Clio. This does not include Clio Connect users.

    Support Link

    User#who_am_i

    Code samples

    # You can also use wget
    curl -X GET /api/v4/users/who_am_i.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/users/who_am_i.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/users/who_am_i.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/users/who_am_i.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/users/who_am_i.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/users/who_am_i.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/users/who_am_i.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /users/who_am_i.json

    Return the data for the current User

    Outlines the parameters, optional and required, used when requesting the data for a single User

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok UserShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    User#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/users.json?name=string \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/users.json?name=string HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/users.json',
      method: 'get',
      data: '?name=string',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/users.json?name=string',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/users.json',
      params: {
      'name' => 'string'
    }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/users.json', params={
      'name': 'string'
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/users.json?name=string");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /users.json

    Return the data for all Users

    Outlines the parameters, optional and required, used when requesting the data for all Users

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    created_since query string(date-time) false Filter User records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    enabled query boolean false Filter User records to those that are enabled or disabled
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter User records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of User records to be returned. Limit can range between 1 and 200. Default: 200.
    name query string true Filter User records to those with the given name.
    order query string false Orders the User records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    role query string false Filter User records to those with a specific role.
    subscription_type query string false Filter User records to those with a specific subscription type.
    updated_since query string(date-time) false Filter User records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    enabled true
    enabled false
    order email(asc)
    order email(desc)
    order enabled(asc)
    order enabled(desc)
    order id(asc)
    order id(desc)
    order name(asc)
    order name(desc)
    order first_name(asc)
    order first_name(desc)
    order last_name(asc)
    order last_name(desc)
    order subscription_type(asc)
    order subscription_type(desc)
    role admin
    role accounts
    role billing
    role reports
    subscription_type attorney
    subscription_type nonattorney

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok UserList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    User#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/users/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/users/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/users/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/users/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/users/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/users/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/users/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /users/{id}.json

    Return the data for a single User

    Outlines the parameters, optional and required, used when requesting the data for a single User

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the User.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok UserShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Utbms Sets

    UTBMS codes are divided into code sets. Each set includes Activities relevant to a certain type of law (for example, litigation, bankruptcy, etc.). Clio users can enable one or more of these sets in the UTBMS settings menu. Enabling a UTBMS code set means that users will be able to select Activities from that list when adding Time or Expense Entries into Clio.

    Support Link

    UtbmsSet#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/utbms/sets.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/utbms/sets.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/utbms/sets.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/utbms/sets.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/utbms/sets.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/utbms/sets.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/utbms/sets.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /utbms/sets.json

    Return the data for all the utbms sets

    Outlines the parameters, optional and required, used when requesting the data for all UtbmsSets

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of UtbmsSet records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the UtbmsSet records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order name(asc)
    order name(desc)
    order id(asc)
    order id(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok UtbmsSetList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Utbms Codes

    UTBMS codes standardize Time and Expense entries across the legal profession. Clio users can enter their Activities using UTBMS codes in order to provide electronic invoices.

    Support Link

    UtbmsCode#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/utbms/codes.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/utbms/codes.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/utbms/codes.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/utbms/codes.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/utbms/codes.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/utbms/codes.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/utbms/codes.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /utbms/codes.json

    Return the data for all UtbmsCodes

    Outlines the parameters, optional and required, used when requesting the data for all UtbmsCodes

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of UtbmsCode records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the UtbmsCode records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    type query string false Filter UtbmsCode records to those of a given type.
    utbms_set_id query integer(int32) false The unique identifier for a single UtbmsSet. Use the keyword null to match those without a UtbmsCode. The list will be filtered to include only the UtbmsCode records with the matching property.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order name(asc)
    order name(desc)
    order id(asc)
    order id(desc)
    order set(asc)
    order set(desc)
    type UtbmsTask
    type UtbmsActivity
    type UtbmsExpense

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok UtbmsCodeList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    UtbmsCode#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/utbms/codes/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/utbms/codes/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/utbms/codes/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/utbms/codes/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/utbms/codes/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/utbms/codes/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/utbms/codes/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /utbms/codes/{id}.json

    Return the data for a single UtbmsCode

    Outlines the parameters, optional and required, used when requesting the data for a single UtbmsCode

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the UtbmsCode.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok UtbmsCodeShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Webhooks

    Webhooks are a way of detecting events in Clio without the need for polling.

    To subscribe to all events for a model, create a webhook record with the URL that you want webhooks to be sent to and a model. Whenever an event happens on that model in Clio that the user is authorized to see, an HTTP request will be made to the supplied URL with details about the event. A webhook will automatically expire after a set period of time. If you require a permanent webhook, you will need to keep manually extending the expires_at field.

    Fields

    The data a webhook sends is configured by using the fields data parameter on the webhook record. Clio will only send a webhook when at least one of the fields has changed from the last webhook that was delivered. Use the minimum set of fields to reduce how frequently your endpoint is hit.

    Delivery Failure & Retries

    A response status code of 2xx, 3xx, or 410 GONE indicate that the action was successfully processed. When a 410 GONE response is received, the webhook subscription will be disabled. All other responses will be considered unsuccessful, and they will be retried using an exponential backoff strategy.

    Timeouts

    Clio will wait a short period of time before the request will timeout. We will consider it an unsuccessful response and retry using an exponential backoff strategy. It is important to respond quickly. Failure to do so repeatedly may result in your webhook being disabled. If you need to do lengthy processing with the webhook, it is recommended that you defer the processing until after you have sent a response back to Clio.

    Security

    Identity Confirmation

    To ensure that a URL actually intends to receive webhooks from Clio, and to ensure that the payloads are actually from Clio, we will share a secret in the initial handshake.

    A POST request will be made immediately after a webhook is setup, or whenever the URL changes. This request will have a unique secret in a X-Hook-Secret header. Upon receiving this secret, the endpoint must return a 200 OK response and include the same secret in a X-Hook-Secret header. The webhook will not be enabled until this handshake is successful.

    Confirming Hook Legitimacy

    To prove that Clio is sending all subsequent messages, Clio will sign all of the requests.

    Clio will compute an HMAC-SHA256 signature based on the shared secret and the request body. That signature will then be placed in a X-Hook-Signature header. The endpoint can then verify the signature to know if the message is authentic. Verification is as simple as computing an HMAC-SHA256 signature using the shared secret as the key and the request body as the message, and comparing it to the X-Hook-Signature header.

    Example responses

    Given a webhook created for the Activities model with no fields specified, the following would be responses for different actions. This webhook will trigger on any events for the model, and return the default fields for that model, and the event type.

    Create

    In the event of an Activity being created, your URL would receive the following JSON: http { "data":{ "id":152, "etag":"\"9a103be2201ae758992733a91f02903f\"" }, "meta":{ "event":"created" } }

    Update

    In the event of an Activity being updated, your URL would receive the following JSON: http { "data":{ "id":152, "etag":"\"9d9ef9fb42a505976d90d564c1596f11\"" }, "meta":{ "event":"updated" } }

    Delete

    In the event of an Activity being deleted, your URL would receive the following JSON: http { "data":{ "id":152, "etag":"\"3cc31bfbd6cfc16d3d7123423e437079\"" }, "meta":{ "event":"deleted" } }

    Webhook#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/webhooks.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/webhooks.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/webhooks.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/webhooks.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/webhooks.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/webhooks.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/webhooks.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /webhooks.json

    Return the data for all Webhooks

    Outlines the parameters, optional and required, used when requesting the data for all Webhooks

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of Webhook records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the Webhook records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok WebhookList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Webhook#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/webhooks.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/webhooks.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/webhooks.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "expires_at": "2018-03-22T20:30:34Z",
        "fields": "string",
        "model": "activity",
        "url": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/webhooks.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/webhooks.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/webhooks.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/webhooks.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /webhooks.json

    Create a new Webhook

    Outlines the parameters and data fields used when creating a new Webhook

    Body parameter

    {
      "data": {
        "expires_at": "2018-03-22T20:30:34Z",
        "fields": "string",
        "model": "activity",
        "url": "string"
      }
    }
    
    data:
      expires_at: '2018-03-22T20:30:34Z'
      fields: string
      model: activity
      url: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» expires_at body string(date-time) false The date and time when the Webhook will expire. (Expects an ISO-8601 timestamp).
    »» fields body string true Fields to be included in the Webhook request.
    »» model body string true What model the Webhook is for.
    »» url body string true The URL of where to POST the Webhook.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» model activity
    »» model bill
    »» model calendar_entry
    »» model communication
    »» model contact
    »» model matter
    »» model task

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created WebhookShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Webhook#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/webhooks/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/webhooks/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/webhooks/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/webhooks/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/webhooks/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/webhooks/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/webhooks/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /webhooks/{id}.json

    Return the data for a single Webhook

    Outlines the parameters, optional and required, used when requesting the data for a single Webhook

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Webhook.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok WebhookShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Webhook#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/webhooks/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/webhooks/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/webhooks/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "expires_at": "2018-03-22T20:30:34Z",
        "fields": "string",
        "model": "activity",
        "url": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/webhooks/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/webhooks/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/webhooks/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/webhooks/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /webhooks/{id}.json

    Update a single Webhook

    Outlines the parameters and data fields used when updating a single Webhook

    Body parameter

    {
      "data": {
        "expires_at": "2018-03-22T20:30:34Z",
        "fields": "string",
        "model": "activity",
        "url": "string"
      }
    }
    
    data:
      expires_at: '2018-03-22T20:30:34Z'
      fields: string
      model: activity
      url: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Webhook.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» expires_at body string(date-time) false The date and time when the Webhook will expire. (Expects an ISO-8601 timestamp).
    »» fields body string false Fields to be included in the Webhook request.
    »» model body string false What model the Webhook is for.
    »» url body string false The URL of where to POST the Webhook.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »» model activity
    »» model bill
    »» model calendar_entry
    »» model communication
    »» model contact
    »» model matter
    »» model task

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok WebhookShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Webhook#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/webhooks/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/webhooks/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/webhooks/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/webhooks/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/webhooks/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/webhooks/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/webhooks/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /webhooks/{id}.json

    Delete a single Webhook

    Outlines the parameters, optional and required, used when deleting the record for a single Webhook

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Webhook.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Document Archives

    DocumentArchive#download

    Code samples

    # You can also use wget
    curl -X GET /api/v4/document_archives/{id}/download.json
    
    
    
    GET /api/v4/document_archives/{id}/download.json HTTP/1.1
    Host: null
    
    
    
    
    
    $.ajax({
      url: '/api/v4/document_archives/{id}/download.json',
      method: 'get',
    
    
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    fetch('/api/v4/document_archives/{id}/download.json',
    {
      method: 'GET'
    
    
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    result = RestClient.get '/api/v4/document_archives/{id}/download.json',
      params: {
      }
    
    
    p JSON.parse(result)
    
    
    
    import requests
    
    
    r = requests.get('/api/v4/document_archives/{id}/download.json', params={
    
    
    )
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_archives/{id}/download.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /document_archives/{id}/download.json

    Download the DocumentArchive

    Download the DocumentArchive

    Parameters

    Parameter In Type Required Description
    id path integer(int32) true The unique identifier for the DocumentArchive.

    Responses

    Status Meaning Description Schema
    303 See Other See Other None
    404 Not Found Not Found None

    DocumentArchive#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/document_archives.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/document_archives.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_archives.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "items": [
          {
            "id": 0,
            "type": 0
          }
        ]
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/document_archives.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/document_archives.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/document_archives.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_archives.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /document_archives.json

    Create a new DocumentArchive

    Outlines the parameters and data fields used when creating a new DocumentArchive

    Body parameter

    {
      "data": {
        "items": [
          {
            "id": 0,
            "type": 0
          }
        ]
      }
    }
    
    data:
      items:
        - id: 0
          type: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» items body [object] true No description
    »»» id body integer(int32) true The unique identifier for a single Document or Folder associated with the DocumentArchive. Use the keyword null to specify no association.
    »»» type body integer(int32) true The type of the item to download

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created DocumentArchiveShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    DocumentArchive#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/document_archives/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/document_archives/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_archives/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/document_archives/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/document_archives/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/document_archives/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_archives/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /document_archives/{id}.json

    Return the data for a single DocumentArchive

    Outlines the parameters, optional and required, used when requesting the data for a single DocumentArchive

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the DocumentArchive.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok DocumentArchiveShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Documents

    Clio Documents are files uploaded to Clio. Files uploaded to Clio’s document integrations (e.g. Google Drive and Office365) are inaccessible through the API.

    Support Link

    Uploading a new document

    1. Create a document to a parent that can refer to a Matter or a Folder. Ensure to ask for the fields, id and latest_document_version{uuid,put_url,put_headers}. The put_url is a signed URL with security credentials for uploading the document. The put_headers are required request headers for uploading the document. Check out the example to upload a new document to the matter folder of Matter with id 1:

    If the extension is listed in the IANA Media Types registry Clio will apply the corresponding content type as determined by the file extension when content_type is blank. One of the nine possible content types content_type = “text” / “image” / “audio” / “video” / “application” / “font” / “model” / “message” / “multipart” must be submitted if the file type is uncommon, not listed in the IANA Media Types registry or not obvious from the extension.

    Request
      POST api/v4/documents?fields=id,latest_document_version{uuid,put_url,put_headers}
        "data": {
          "name": "file.jpg",
          "parent": {
            "id": 1,
            "type": "Matter"
          }
        }
      }
    
    
    Response
      {
        "data": {
          "id": 1234,
          "latest_document_version": {
            "uuid": "a51faa2c-859e-4c08-a996-2d0bb385df90",
            "put_url": "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/a51faa2c-859e-4c08-a996-2d0bb385df90/file.jpg?X-Amz-Expires=28800&X-Amz-Date=20171024T214532Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-server-side-encryption&X-Amz-Signature=afe5000df0972d02884a2219f913bfa62fe2531c75b4fcd1edbcb84d267d2b8e",
            "put_headers": [
              {
                "name": "x-amz-server-side-encryption",
                "value": "AES256"
              },
              {
                "name": "Content-Type",
                "value": "image/jpeg"
              }
            ]
          }
        }
      }
    
    1. Upload the document to the put_url with the headers from puts_headers given in the response of the previous step. Typically the headers include Content-Type and x-amz-server-side-encryption to match with the signature in the put_url. Check out the example to upload the file content using curl: bash curl -X PUT -T file.jpg -H "Content-Type: image/jpeg" -H "x-amz-server-side-encryption: AES256" "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/a51faa2c-859e-4c08-a996-2d0bb385df90/file.jpg?X-Amz-Expires=28800&X-Amz-Date=20171024T214532Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-server-side-encryption&X-Amz-Signature=afe5000df0972d02884a2219f913bfa62fe2531c75b4fcd1edbcb84d267d2b8e" If you need MD5 checksum, you should use multipart upload.
    2. After successfully completing the upload, mark the document fully uploaded with fully_uploaded as true, and uuid given in the first step. Clio will verify if the file is uploaded successfully. If not, it raises UploadNotFoundError error. It is possible for the verification to time out, which will return an UploadTimeoutError error. When that happens, you will need to retry the request. ```bash Request PATCH api/v4/documents/1234?fields=id,latest_document_version{fully_uploaded} "data": { "uuid": "a51faa2c-859e-4c08-a996-2d0bb385df90", "fully_uploaded": "true" } }

    Response (success) { "data": { "id": 12345, "latest_document_version": { "fully_uploaded": true } } }

    Response (error) { "error": { "type": "UploadNotFoundError", "message": "A matching remote file was not found for the file named file.jpg with UUID a51faa2c-859e-4c08-a996-2d0bb385df90" } }

    Response (timeout) { "error": { "type": "UploadTimeoutError", "message": "A timeout occurred verifying the remote file file.jpg with UUID a51faa2c-859e-4c08-a996-2d0bb385df90. Please try the request again." } } ``` 4. The file is now visible in Clio documents and is available to the user for download.

    Uploading a new document version

    1. It is same as uploading a new document to Clio except setting the parent to an existing Document. Check out the example to upload a new document version for the document with id 1234: bash Request POST api/v4/documents?fields=id,latest_document_version{uuid,put_url,put_headers} "data": { "name": "file.jpg", "parent": { "id": 1234, "type": "Document" } } } The remaining steps are same as uploading a new document to Clio.

    Uploading a document using multipart upload

    1. In general, when a file reaches 100 MB, you should consider using multipart upload instead of uploading in a single operation. Except the last part, each part should be at least 5 MB. Determine the number of file parts and split the file. Optionally, you may compute the base64-encoded 128-bit MD5 mechanism as an end-to-end integrity check for each file part. To determine the base64 MD5 checksum for a file part, you may use openssl. Check out the example to split a big pdf and get the checksums of the file parts: bash split -b 31457280 big.pdf big.pdf. # break the file to max. 30MB size openssl md5 -binary big.pdf.aa | base64 # F16pda4G0h4lzH7d2/Jbdw== openssl md5 -binary big.pdf.ab | base64 # cRbxEG//GK9rIze5tdYzcg== openssl md5 -binary big.pdf.ac | base64 # Tck0KKU4SrmSp8hsSCuSYg== openssl md5 -binary big.pdf.ad | base64 # CrIt7lbZzVhMV7JzVTkUvw==
    2. Create a document, specify multiparts for multipart upload, and ensure to ask for the fields, id, and latest_document_version{uuid,multiparts}. A multipart consists of part_number, content_length, and optional content_md5. In the response, a put_url is appended to the multipart. A put_url is a signed URL with security credentials for uploading a file part. The signed URL expires in 8 hours. The API can handle maximum 50 multiparts in one request. If the upload is split to more than 50 parts, make a PUT request with uuid, fully_uploaded as false, and another set of multiparts. It returns a set of put_url for the specified multiparts. Check out the example to upload a new document to the matter folder of Matter with id 1: ```bash Request POST api/v4/documents?fields=id,latest_document_version{uuid,put_headers,multiparts} "data": { "name": "big.pdf", "parent": { "id": 1, "type": "Matter" } "multiparts": [ { "part_number": 1, "content_length": 31457280, "content_md5": "F16pda4G0h4lzH7d2/Jbdw==" }, { "part_number": 2, "content_length": 31457280, "content_md5": "cRbxEG//GK9rIze5tdYzcg==" }, { "part_number": 3, "content_length": 31457280, "content_md5": "Tck0KKU4SrmSp8hsSCuSYg==" }, { "part_number": 4, "content_length": 7316647, "content_md5": "CrIt7lbZzVhMV7JzVTkUvw==" } ] }

    Response { "data": { "id": 1234, "latest_document_version": { "uuid": "eba78724-31e8-4529-b6e2-0f2eef6feeec", "put_headers": [ { "name": "x-amz-server-side-encryption", "value": "AES256" }, { "name": "Content-Type", "value": "application/pdf" } ], "multiparts": [ { "part_number": 1, "put_url": "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/eba78724-31e8-4529-b6e2-0f2eef6feeec/big.pdf?uploadId=XG9arnSRfpXVFj4NYCoj66e.iUtET050CFds7GGwb4_J6J26Ysgn_fLCK7pI5KRzJRmBOB_Oa.dle.nn4JLKos_cdRXN6f6Hb0IACkgiN6Wa2XGNv9fZQwgfqmMey1DN&partNumber=1&X-Amz-Expires=28800&X-Amz-Date=20171024T231538Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bhost&X-Amz-Signature=f7b3f29e4aee3abfa93fb42a7969557a2a0d305d223dde641c78421b5a6d62e0", "put_headers": [ { "name": "Content-Length", "value": "31457280" }, { "name": "Content-MD5", "value": "F16pda4G0h4lzH7d2/Jbdw==" } ] }, { "part_number": 2, "put_url": "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/eba78724-31e8-4529-b6e2-0f2eef6feeec/big.pdf?uploadId=XG9arnSRfpXVFj4NYCoj66e.iUtET050CFds7GGwb4_J6J26Ysgn_fLCK7pI5KRzJRmBOB_Oa.dle.nn4JLKos_cdRXN6f6Hb0IACkgiN6Wa2XGNv9fZQwgfqmMey1DN&partNumber=2&X-Amz-Expires=28800&X-Amz-Date=20171024T231538Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bhost&X-Amz-Signature=47dc30f90202654c13030ccce87e43622bb47e0ad155ae61f6b41e8097803950", "put_headers": [ { "name": "Content-Length", "value": "31457280" }, { "name": "Content-MD5", "value": "cRbxEG//GK9rIze5tdYzcg==" } ] }, { "part_number": 3, "put_url": "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/eba78724-31e8-4529-b6e2-0f2eef6feeec/big.pdf?uploadId=XG9arnSRfpXVFj4NYCoj66e.iUtET050CFds7GGwb4_J6J26Ysgn_fLCK7pI5KRzJRmBOB_Oa.dle.nn4JLKos_cdRXN6f6Hb0IACkgiN6Wa2XGNv9fZQwgfqmMey1DN&partNumber=3&X-Amz-Expires=28800&X-Amz-Date=20171024T231538Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bhost&X-Amz-Signature=13ca827a73fb2c50e8062ef7e437cfe9158944d998e2770a2ffcd034be6c2fc7", "put_headers": [ { "name": "Content-Length", "value": "31457280" }, { "name": "Content-MD5", "value": "Tck0KKU4SrmSp8hsSCuSYg==" } ] }, { "part_number": 4, "put_url": "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/eba78724-31e8-4529-b6e2-0f2eef6feeec/big.pdf?uploadId=XG9arnSRfpXVFj4NYCoj66e.iUtET050CFds7GGwb4_J6J26Ysgn_fLCK7pI5KRzJRmBOB_Oa.dle.nn4JLKos_cdRXN6f6Hb0IACkgiN6Wa2XGNv9fZQwgfqmMey1DN&partNumber=4&X-Amz-Expires=28800&X-Amz-Date=20171024T231538Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bhost&X-Amz-Signature=25773f971c4c663b3a87f4d35c5b4c5192c3c999c7efdd69a49bc5bc40677078", "put_headers": [ { "name": "Content-Length", "value": "7316647" }, { "name": "Content-MD5", "value": "CrIt7lbZzVhMV7JzVTkUvw==" } ] } ] } } } ```

    1. Upload each multipart to the corresponding put_url. You can upload the parts independently and in any order. If transmission of any part fails, you can re-transmit that part without affecting other parts. Make sure to include the headers from puts_headers. Typically the headers include Content-Length, to match with the signature in the put_url. Check out the example using curl: bash curl -X PUT -T big.pdf.part1 -H "Content-Length: 31457280" "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/eba78724-31e8-4529-b6e2-0f2eef6feeec/big.pdf?uploadId=XG9arnSRfpXVFj4NYCoj66e.iUtET050CFds7GGwb4_J6J26Ysgn_fLCK7pI5KRzJRmBOB_Oa.dle.nn4JLKos_cdRXN6f6Hb0IACkgiN6Wa2XGNv9fZQwgfqmMey1DN&partNumber=1&X-Amz-Expires=28800&X-Amz-Date=20171024T231538Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bhost&X-Amz-Signature=f7b3f29e4aee3abfa93fb42a7969557a2a0d305d223dde641c78421b5a6d62e0"

    If you use MD5 checksum to validate the integrity of upload, include Content-MD5 in the header: bash curl -X PUT -T big.pdf.part1 -H "Content-Length: 31457280" -H "Content-MD5: F16pda4G0h4lzH7d2/Jbdw==" "https://s3-us-west-2.amazonaws.com/iris-production/uploads/document_version/file/eba78724-31e8-4529-b6e2-0f2eef6feeec/big.pdf?uploadId=XG9arnSRfpXVFj4NYCoj66e.iUtET050CFds7GGwb4_J6J26Ysgn_fLCK7pI5KRzJRmBOB_Oa.dle.nn4JLKos_cdRXN6f6Hb0IACkgiN6Wa2XGNv9fZQwgfqmMey1DN&partNumber=1&X-Amz-Expires=28800&X-Amz-Date=20171024T231538Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOYDOZH6YP4VQLOA/20171024/us-west-2/s3/aws4_request&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bhost&X-Amz-Signature=f7b3f29e4aee3abfa93fb42a7969557a2a0d305d223dde641c78421b5a6d62e0"

    If the file is invalid or the MD5 is invalid, you may get the following response: bash <Error> <Code>BadDigest</Code> <Message>The Content-MD5 you specified did not match what we received.</Message> <ExpectedDigest>F16pda4G0h4lzH7d2/Jbdw==</ExpectedDigest> <CalculatedDigest>Tck0KKU4SrmSp8hsSCuSYg==</CalculatedDigest> <RequestId>85918626116672DD</RequestId> <HostId>AbAoiqYqn8tKwS6gxwI3pc4u02B6u6ORa6MPEJH7IYljBweZp0M8L7Lg2AFOvHxdHz5TwlQpkVs=</HostId> </Error> After the issue is corrected, try to upload to the file part to the put_url again.

    1. After successfully completing the upload of all the file parts, mark the document fully uploaded with fully_uploaded as true, and uuid given in the first step. Clio will verify if the file is uploaded successfully. If not, it raises UploadNotFoundError error. It is possible for the verification to time out, which will return an UploadTimeoutError error. When that happens, you will need to retry the request. ```bash Request PATCH api/v4/documents/1234?fields=id,latest_document_version{fully_uploaded} "data": { "uuid": "eba78724-31e8-4529-b6e2-0f2eef6feeec", "fully_uploaded": "true" } }

    Response (success) { "data": { "id": 12345, "latest_document_version": { "fully_uploaded": true } } }

    Response (error) { "error": { "type": "UploadNotFoundError", "message": "A matching remote file was not found for the file named file.jpg with UUID a51faa2c-859e-4c08-a996-2d0bb385df90" } }

    Response (timeout) { "error": { "type": "UploadTimeoutError", "message": "A timeout occurred verifying the remote file file.jpg with UUID a51faa2c-859e-4c08-a996-2d0bb385df90. Please try the request again." } } ``` 5. The file is now visible in Clio documents and is available to the user for download.

    Uploading a new document version using multipart upload

    1. It is same as splitting and uploading a new document using multipart upload, except setting the parent to an existing Document. Check out the example to upload a new document version for the document with id 1234: bash Request POST api/v4/documents?fields=id,latest_document_version{uuid,put_headers,multiparts} "data": { "name": "big.pdf", "parent": { "id": 1234, "type": "Document" } "multiparts": [ { "part_number": 1, "content_length": 31457280, "content_md5": "F16pda4G0h4lzH7d2/Jbdw==" }, { "part_number": 2, "content_length": 31457280, "content_md5": "cRbxEG//GK9rIze5tdYzcg==" }, { "part_number": 3, "content_length": 31457280, "content_md5": "Tck0KKU4SrmSp8hsSCuSYg==" }, { "part_number": 4, "content_length": 7316647, "content_md5": "CrIt7lbZzVhMV7JzVTkUvw==" } ] } The remaining steps are same as uploading a new document to Clio.

    Document#download

    Code samples

    # You can also use wget
    curl -X GET /api/v4/documents/{id}/download.json
    
    
    
    GET /api/v4/documents/{id}/download.json HTTP/1.1
    Host: null
    
    
    
    
    
    $.ajax({
      url: '/api/v4/documents/{id}/download.json',
      method: 'get',
    
    
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    fetch('/api/v4/documents/{id}/download.json',
    {
      method: 'GET'
    
    
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    result = RestClient.get '/api/v4/documents/{id}/download.json',
      params: {
      }
    
    
    p JSON.parse(result)
    
    
    
    import requests
    
    
    r = requests.get('/api/v4/documents/{id}/download.json', params={
    
    
    )
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/documents/{id}/download.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /documents/{id}/download.json

    Download the Document

    Download the Document

    Parameters

    Parameter In Type Required Description
    document_version_id query integer(int32) false The unique identifier for a DocumentVersion to be downloaded. Defaults to the latest.
    id path integer(int32) true The unique identifier for the Document.

    Responses

    Status Meaning Description Schema
    303 See Other See Other None
    404 Not Found Not Found None

    Document#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/documents.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/documents.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/documents.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/documents.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/documents.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/documents.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/documents.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /documents.json

    Return the data for all Documents

    Outlines the parameters, optional and required, used when requesting the data for all Documents

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    contact_id query integer(int32) false The unique identifier for a single Contact. Use the keyword null to match those without a Document. The list will be filtered to include only the Document records with the matching property.
    created_since query string(date-time) false Filter Document records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    document_category_id query integer(int32) false The unique identifier for a single DocumentCategory. Use the keyword null to match those without a Document. The list will be filtered to include only the Document records with the matching property.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter Document records to those having the specified unique identifiers
    include_deleted query boolean false Allow trashed Document record to be included.
    limit query integer(int32) false A limit on the number of Document records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. Use the keyword null to match those without a Document. The list will be filtered to include only the Document records with the matching property.
    order query string false Orders the Document records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for name matching the given string.
    show_uncompleted query boolean false Allow Document record being uploaded to be included.
    updated_since query string(date-time) false Filter Document records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)
    order name(asc)
    order name(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok DocumentList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Document#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/documents.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/documents.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/documents.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "content_type": "string",
        "document_category": {
          "id": 0
        },
        "filename": "name",
        "multiparts": [
          {
            "part_number": 0,
            "content_length": "string",
            "content_md5": "string"
          }
        ],
        "name": "string",
        "parent": {
          "type": "Document",
          "id": 0
        },
        "received_at": "2018-03-22T20:30:34Z"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/documents.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/documents.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/documents.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/documents.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /documents.json

    Create a new Document

    Create a Document, or Create Document Version to an existing Document.

    Body parameter

    {
      "data": {
        "content_type": "string",
        "document_category": {
          "id": 0
        },
        "filename": "name",
        "multiparts": [
          {
            "part_number": 0,
            "content_length": "string",
            "content_md5": "string"
          }
        ],
        "name": "string",
        "parent": {
          "type": "Document",
          "id": 0
        },
        "received_at": "2018-03-22T20:30:34Z"
      }
    }
    
    data:
      content_type: string
      document_category:
        id: 0
      filename: name
      multiparts:
        - part_number: 0
          content_length: string
          content_md5: string
      name: string
      parent:
        type: Document
        id: 0
      received_at: '2018-03-22T20:30:34Z'
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» content_type body string false A standard MIME type describing the format of the object data. If the field is not specified, it is determined by the file extension.
    »» document_category body object false No description
    »»» id body integer(int32) false The unique identifier for a single DocumentCategory associated with the Document. Use the keyword null to specify no association.
    »» filename body string false Name of the original file.
    »» multiparts body [object] false No description
    »»» part_number body integer(int32) true The part number of multipart upload. It must be an integer between 1 to 10,000, inclusive.
    »»» content_length body string true The size of the part of the upload file in bytes.
    »»» content_md5 body string false The base64-encoded 128-bit MD5 digest of the part data. This header can be used as a message integrity check to verify that the part data is the same data that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check.
    »» name body string true Document name.
    »» parent body object true No description
    »»» type body string true Type of parent object:
    »»» id body integer(int32) true The unique identifier of the parent object.
    »» received_at body string(date-time) false Date and time the document was received (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    »»» part_number: The part number of multipart upload. It must be an integer between 1 to 10,000, inclusive.

    Multipart upload supports upload a single file as a set of parts. Each part is a contiguous portion of the data. A part_number uniquely identifies a part and also defines its position within the document being uploaded. Each part must be at least 5 MB in size, except the last part. There is no minimum size limit on the last part.

    The URLs of multipart upload are returned in the field, put_url, with the corresponding multipart

    The API handles maximum 50 multiparts in one request. If the upload is split to more than 50 parts, make a PUT request with fully_uploaded equal to false, and another set of part numbers.

    »»» type: Type of parent object: * "Document" represents an existing Clio document. It is specified when you provide a new revision (or document version) to an existing document. * "Folder" represents a specified folder on Clio by folder id. It if specified when you add / move an item to a folder. * "Matter" represents a matter folder on Clio identified by matter id. It is specified when you add / move an item to a matter folder.

    Enumerated Values

    Parameter Value
    »»» type Document
    »»» type Folder
    »»» type Matter

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created DocumentShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Document#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/documents/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/documents/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/documents/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/documents/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/documents/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/documents/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/documents/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /documents/{id}.json

    Return the data for a single Document

    Outlines the parameters, optional and required, used when requesting the data for a single Document

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Document.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok DocumentShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Document#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/documents/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/documents/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/documents/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "document_category": {
          "id": 0
        },
        "fully_uploaded": true,
        "multiparts": [
          {
            "part_number": 0,
            "content_length": "string",
            "content_md5": "string"
          }
        ],
        "name": "string",
        "parent": {
          "type": "Document",
          "id": 0
        },
        "received_at": "2018-03-22T20:30:34Z",
        "uuid": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/documents/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/documents/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/documents/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/documents/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /documents/{id}.json

    Update a single Document

    Update Document, move Document to another Folder, and/or restore a trashed Document.

    Body parameter

    {
      "data": {
        "document_category": {
          "id": 0
        },
        "fully_uploaded": true,
        "multiparts": [
          {
            "part_number": 0,
            "content_length": "string",
            "content_md5": "string"
          }
        ],
        "name": "string",
        "parent": {
          "type": "Document",
          "id": 0
        },
        "received_at": "2018-03-22T20:30:34Z",
        "uuid": "string"
      }
    }
    
    data:
      document_category:
        id: 0
      fully_uploaded: true
      multiparts:
        - part_number: 0
          content_length: string
          content_md5: string
      name: string
      parent:
        type: Document
        id: 0
      received_at: '2018-03-22T20:30:34Z'
      uuid: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Document.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» document_category body object false No description
    »»» id body integer(int32) false The unique identifier for a single DocumentCategory associated with the Document. Use the keyword null to specify no association.
    »» fully_uploaded body boolean false Indicates whether document is uploaded.
    »» multiparts body [object] false No description
    »»» part_number body integer(int32) false The part number of multipart upload. It must be an integer between 1 to 10,000, inclusive.
    »»» content_length body string false The size of the part of the upload file in bytes.
    »»» content_md5 body string false The base64-encoded 128-bit MD5 digest of the part data. This header can be used as a message integrity check to verify that the part data is the same data that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check.
    »» name body string false Document name.
    »» parent body object false No description
    »»» type body string false Type of parent object:
    »»» id body integer(int32) false The unique identifier of the parent object.
    »» received_at body string(date-time) false Date and time the document was received (Expects an ISO-8601 timestamp).
    »» uuid body string false UUID associated with the document version. UUID is required to mark a document fully uploaded.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    »» fully_uploaded: Indicates whether document is uploaded.

    When marking the document fully uploaded, it arises errors when: * The file is not successfully uploaded. * Not all the file parts are uploaded. * The document is already marked as fully uploaded.

    »»» part_number: The part number of multipart upload. It must be an integer between 1 to 10,000, inclusive.

    Multipart upload supports upload a single file as a set of parts. Each part is a contiguous portion of the data. A part_number uniquely identifies a part and also defines its position within the document being uploaded. Each part must be at least 5 MB in size, except the last part. There is no minimum size limit on the last part.

    The URLs of multipart upload are returned in the field, put_url, with the corresponding multipart

    The API handles maximum 50 multiparts in one request. If the upload is split to more than 50 parts, make a PUT request with fully_uploaded equal to false, and another set of part numbers.

    »»» type: Type of parent object: * "Document" represents an existing Clio document. It is specified when you provide a new revision (or document version) to an existing document. * "Folder" represents a specified folder on Clio by folder id. It if specified when you add / move an item to a folder. * "Matter" represents a matter folder on Clio identified by matter id. It is specified when you add / move an item to a matter folder.

    Enumerated Values

    Parameter Value
    »»» type Document
    »»» type Folder
    »»» type Matter

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok DocumentShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Document#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/documents/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/documents/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/documents/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/documents/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/documents/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/documents/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/documents/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /documents/{id}.json

    Delete a single Document

    Deleting a Document using this method will move it to the trash instead of permanently deleting it. Trashed Documents are permanently deleted after 30 days.

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Document.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Document Automations

    Document Automation uses Document Templates to create standardized documents. Users select a Document Template (that they have created and uploaded) and a Matter to automatically create a document using information from that Matter (such as addresses, account balances, Matter names, etc.).

    Documents generated using Document Automation are created using Drawloop, a trusted Clio partner, and are sent through Drawloop’s U.S. servers.

    Support Link

    DocumentAutomation#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/document_automations.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/document_automations.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_automations.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/document_automations.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/document_automations.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/document_automations.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_automations.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /document_automations.json

    Return the data for all DocumentAutomations

    Outlines the parameters, optional and required, used when requesting the data for all DocumentAutomations

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    created_since query string(date-time) false Filter DocumentAutomation records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter DocumentAutomation records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of DocumentAutomation records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the DocumentAutomation records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    updated_since query string(date-time) false Filter DocumentAutomation records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok DocumentAutomationList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    DocumentAutomation#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/document_automations.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    POST /api/v4/document_automations.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_automations.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "document_template": {
          "id": 0
        },
        "filename": "string",
        "formats|": "pdf",
        "matter": {
          "id": 0
        }
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/document_automations.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.post '/api/v4/document_automations.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.post('/api/v4/document_automations.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_automations.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /document_automations.json

    Create a new DocumentAutomation

    Outlines the parameters and data fields used when creating a new DocumentAutomation

    Body parameter

    {
      "data": {
        "document_template": {
          "id": 0
        },
        "filename": "string",
        "formats|": "pdf",
        "matter": {
          "id": 0
        }
      }
    }
    
    data:
      document_template:
        id: 0
      filename: string
      formats|: pdf
      matter:
        id: 0
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» document_template body object true No description
    »»» id body integer(int32) true The unique identifier for a single DocumentTemplate associated with the DocumentAutomation. The keyword null is not valid for this field.
    »» filename body string true The filename the generated document should have.
    »» formats body string true
    »» matter body object true No description
    »»» id body integer(int32) true The unique identifier for a single Matter associated with the DocumentAutomation. The keyword null is not valid for this field.

    Enumerated Values

    Parameter Value
    »» formats
    »» formats

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created DocumentAutomationShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    DocumentAutomation#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/document_automations/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/document_automations/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_automations/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/document_automations/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/document_automations/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/document_automations/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_automations/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /document_automations/{id}.json

    Return the data for a single DocumentAutomation

    Outlines the parameters, optional and required, used when requesting the data for a single DocumentAutomation

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the DocumentAutomation.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok DocumentAutomationShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Document Categories

    Clio users can add Document Categories to their account to help organize their Documents. When a Document is uploaded or edited, a Document Category can be assigned. Users can filter by Document Category to show all Documents in a certain category across all of the account’s Matters.

    Support Link

    Document Categories in Clio

    DocumentCategory#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/document_categories.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/document_categories.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_categories.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/document_categories.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/document_categories.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/document_categories.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_categories.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /document_categories.json

    Return the data for all DocumentCategories

    Outlines the parameters, optional and required, used when requesting the data for all DocumentCategories

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    limit query integer(int32) false A limit on the number of DocumentCategory records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the DocumentCategory records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for name matching a given string.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)
    query name

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok DocumentCategoryList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    DocumentCategory#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/document_categories.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/document_categories.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_categories.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "name": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/document_categories.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/document_categories.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/document_categories.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_categories.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /document_categories.json

    Create a new DocumentCategory

    Outlines the parameters and data fields used when creating a new DocumentCategory

    Body parameter

    {
      "data": {
        "name": "string"
      }
    }
    
    data:
      name: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» name body string true What the DocumentCategory should be called.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created DocumentCategoryShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    DocumentCategory#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/document_categories/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/document_categories/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_categories/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/document_categories/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/document_categories/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/document_categories/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_categories/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /document_categories/{id}.json

    Return the data for a single DocumentCategory

    Outlines the parameters, optional and required, used when requesting the data for a single DocumentCategory

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the DocumentCategory.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok DocumentCategoryShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    DocumentCategory#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/document_categories/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/document_categories/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_categories/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "name": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/document_categories/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/document_categories/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/document_categories/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_categories/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /document_categories/{id}.json

    Update a single DocumentCategory

    Outlines the parameters and data fields used when updating a single DocumentCategory

    Body parameter

    {
      "data": {
        "name": "string"
      }
    }
    
    data:
      name: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the DocumentCategory.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» name body string false What the DocumentCategory should be called.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok DocumentCategoryShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    DocumentCategory#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/document_categories/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/document_categories/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_categories/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/document_categories/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/document_categories/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/document_categories/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_categories/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /document_categories/{id}.json

    Delete a single DocumentCategory

    Outlines the parameters, optional and required, used when deleting the record for a single DocumentCategory

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the DocumentCategory.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Document Templates

    Document Templates are files used to create standardized documents using Clio’s Document Automation feature. Document Templates contain merge fields, which are used to pull information from Clio into the document being generated by Document Automation.

    The supported formats are doc, docx, ppt, pptx, xls, xlsx, pdf and xml.

    Support Link

    DocumentTemplate#download

    Code samples

    # You can also use wget
    curl -X GET /api/v4/document_templates/{id}/download.json
    
    
    
    GET /api/v4/document_templates/{id}/download.json HTTP/1.1
    Host: null
    
    
    
    
    
    $.ajax({
      url: '/api/v4/document_templates/{id}/download.json',
      method: 'get',
    
    
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    fetch('/api/v4/document_templates/{id}/download.json',
    {
      method: 'GET'
    
    
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    result = RestClient.get '/api/v4/document_templates/{id}/download.json',
      params: {
      }
    
    
    p JSON.parse(result)
    
    
    
    import requests
    
    
    r = requests.get('/api/v4/document_templates/{id}/download.json', params={
    
    
    )
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_templates/{id}/download.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /document_templates/{id}/download.json

    Get the contents of the DocumentTemplate

    Get the contents of the DocumentTemplate

    Parameters

    Parameter In Type Required Description
    id path integer(int32) true The unique identifier for the DocumentTemplate.

    Responses

    Status Meaning Description Schema
    303 See Other See Other None
    404 Not Found Not Found None

    DocumentTemplate#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/document_templates.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/document_templates.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_templates.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/document_templates.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/document_templates.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/document_templates.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_templates.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /document_templates.json

    Return the data for all DocumentTemplates

    Outlines the parameters, optional and required, used when requesting the data for all DocumentTemplates

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    created_since query string(date-time) false Filter DocumentTemplate records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter DocumentTemplate records to those having the specified unique identifiers
    limit query integer(int32) false A limit on the number of DocumentTemplate records to be returned. Limit can range between 1 and 200. Default: 200.
    order query string false Orders the DocumentTemplate records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    updated_since query string(date-time) false Filter DocumentTemplate records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)
    order filename(asc)
    order filename(desc)
    order category.name(asc)
    order category.name(desc)
    order last_modified(asc)
    order last_modified(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok DocumentTemplateList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    DocumentTemplate#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/document_templates.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    POST /api/v4/document_templates.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_templates.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "document_category": {
          "id": 0
        },
        "file": "string",
        "filename": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/document_templates.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.post '/api/v4/document_templates.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.post('/api/v4/document_templates.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_templates.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /document_templates.json

    Create a new DocumentTemplate

    Outlines the parameters and data fields used when creating a new DocumentTemplate

    Body parameter

    {
      "data": {
        "document_category": {
          "id": 0
        },
        "file": "string",
        "filename": "string"
      }
    }
    
    data:
      document_category:
        id: 0
      file: string
      filename: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» document_category body object false No description
    »»» id body integer(int32) false The unique identifier for a single DocumentCategory associated with the DocumentTemplate. The keyword null is not valid for this field.
    »» file body string true A file that contains the DocumentTemplate. The file can be uploaded through a form as application/x-www-form-urlencoded or multipart/form-data request.
    »» filename body string false The name of the file. The field is required when the file is BASE64-encoded string.

    Detailed descriptions

    »» file: A file that contains the DocumentTemplate. The file can be uploaded through a form as application/x-www-form-urlencoded or multipart/form-data request. Alternatively, the file can be converted to a BASE64-encoded string and serialized to JSON.

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created DocumentTemplateShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    DocumentTemplate#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/document_templates/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/document_templates/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_templates/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/document_templates/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/document_templates/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/document_templates/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_templates/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /document_templates/{id}.json

    Return the data for a single DocumentTemplate

    Outlines the parameters, optional and required, used when requesting the data for a single DocumentTemplate

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the DocumentTemplate.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok DocumentTemplateShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    DocumentTemplate#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/document_templates/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string'
    
    
    
    PATCH /api/v4/document_templates/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_templates/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "document_category": {
          "id": 0
        },
        "file": "string",
        "filename": "string"
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/document_templates/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.patch '/api/v4/document_templates/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.patch('/api/v4/document_templates/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_templates/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /document_templates/{id}.json

    Update a single DocumentTemplate

    Outlines the parameters and data fields used when updating a single DocumentTemplate

    Body parameter

    {
      "data": {
        "document_category": {
          "id": 0
        },
        "file": "string",
        "filename": "string"
      }
    }
    
    data:
      document_category:
        id: 0
      file: string
      filename: string
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the DocumentTemplate.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» document_category body object false No description
    »»» id body integer(int32) false The unique identifier for a single DocumentCategory associated with the DocumentTemplate. The keyword null is not valid for this field.
    »» file body string false A file that contains the DocumentTemplate. The file can be uploaded through a form as application/x-www-form-urlencoded or multipart/form-data request.
    »» filename body string false The name of the file. The field is required when the file is BASE64-encoded string.

    Detailed descriptions

    »» file: A file that contains the DocumentTemplate. The file can be uploaded through a form as application/x-www-form-urlencoded or multipart/form-data request. Alternatively, the file can be converted to a BASE64-encoded string and serialized to JSON.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok DocumentTemplateShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    DocumentTemplate#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/document_templates/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/document_templates/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/document_templates/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/document_templates/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/document_templates/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/document_templates/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/document_templates/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /document_templates/{id}.json

    Delete a single DocumentTemplate

    Outlines the parameters, optional and required, used when deleting the record for a single DocumentTemplate

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the DocumentTemplate.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Folders

    Files stored in Clio’s Documents section are organized in folders. Folders are automatically generated for new Contacts and Matters. Folders can also be manually created anywhere in the folder structure.

    Support Link

    Folder#list

    Code samples

    # You can also use wget
    curl -X GET /api/v4/folders/list.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/folders/list.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/folders/list.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/folders/list.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/folders/list.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/folders/list.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/folders/list.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /folders/list.json

    Return the data of the contents a Folder

    Return the data of the contents of a Folder.

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    contact_id query integer(int32) false The unique identifier for a single Contact. Use the keyword null to match those without a Folder. The list will be filtered to include only the Folder records with the matching property.
    created_since query string(date-time) false Filter Folder records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    document_category_id query integer(int32) false The unique identifier for a single DocumentCategory. Use the keyword null to match those without a Folder. The list will be filtered to include only the Folder records with the matching property.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter Folder records to those having the specified unique identifiers
    include_deleted query boolean false Allow trashed Folder record to be included.
    limit query integer(int32) false A limit on the number of Folder records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. Use the keyword null to match those without a Folder. The list will be filtered to include only the Folder records with the matching property.
    order query string false Orders the Folder records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    parent_id query integer(int32) false The unique identifier for a single Folder. The keyword null is not valid for this field. If no Folder is provided, it will default to the account's root Folder.
    query query string false Wildcard search for name matching the given string.
    show_uncompleted query boolean false Allow Folder record being uploaded to be included.
    updated_since query string(date-time) false Filter Folder records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)
    order name(asc)
    order name(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok ItemList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Folder#index

    Code samples

    # You can also use wget
    curl -X GET /api/v4/folders.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    GET /api/v4/folders.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/folders.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/folders.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.get '/api/v4/folders.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.get('/api/v4/folders.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/folders.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /folders.json

    Return the data for all Folders

    Outlines the parameters, optional and required, used when requesting the data for all Folders

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    contact_id query integer(int32) false The unique identifier for a single Contact. Use the keyword null to match those without a Folder. The list will be filtered to include only the Folder records with the matching property.
    created_since query string(date-time) false Filter Folder records to those having the created_at field after a specific time. (Expects an ISO-8601 timestamp).
    document_category_id query integer(int32) false The unique identifier for a single DocumentCategory. Use the keyword null to match those without a Folder. The list will be filtered to include only the Folder records with the matching property.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    ids[] query integer(int32) false Filter Folder records to those having the specified unique identifiers
    include_deleted query boolean false Allow trashed Folder record to be included.
    limit query integer(int32) false A limit on the number of Folder records to be returned. Limit can range between 1 and 200. Default: 200.
    matter_id query integer(int32) false The unique identifier for a single Matter. Use the keyword null to match those without a Folder. The list will be filtered to include only the Folder records with the matching property.
    order query string false Orders the Folder records by the given field. Default: id(asc).
    page_token query integer(int32) false A token specifying which page to return.
    query query string false Wildcard search for name matching the given string.
    updated_since query string(date-time) false Filter Folder records to those having the updated_at field after a specific time. (Expects an ISO-8601 timestamp).

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    order id(asc)
    order id(desc)
    order name(asc)
    order name(desc)

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok FolderList
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    429 Too Many Requests Too Many Requests Error

    Folder#create

    Code samples

    # You can also use wget
    curl -X POST /api/v4/folders.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    POST /api/v4/folders.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/folders.json',
      method: 'post',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "document_category": {
          "id": 0
        },
        "name": "string",
        "parent": {
          "id": 0,
          "type": "Folder"
        },
        "restore": true
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/folders.json',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.post '/api/v4/folders.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.post('/api/v4/folders.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/folders.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /folders.json

    Create a new Folder

    Create a Folder to an existing folder.

    Body parameter

    {
      "data": {
        "document_category": {
          "id": 0
        },
        "name": "string",
        "parent": {
          "id": 0,
          "type": "Folder"
        },
        "restore": true
      }
    }
    
    data:
      document_category:
        id: 0
      name: string
      parent:
        id: 0
        type: Folder
      restore: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» document_category body object false No description
    »»» id body integer(int32) false The unique identifier for a single DocumentCategory associated with the Folder. Use the keyword null to specify no association.
    »» name body string true Name of the Folder
    »» parent body object true No description
    »»» id body integer(int32) true The unique identifier for a single Folder or Matter associated with the Folder. The keyword null is not valid for this field.
    »»» type body string true Type of parent object.
    »» restore body boolean false Whether or not a trashed Folder should be restored.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »»» type Folder
    »»» type Matter

    Example responses

    Responses

    Status Meaning Description Schema
    201 Created Created FolderShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Folder#show

    Code samples

    # You can also use wget
    curl -X GET /api/v4/folders/{id}.json \
      -H 'Accept: */*' \
      -H 'IF_MODIFIED_SINCE: 2018-03-22' \
      -H 'IF_NONE_MATCH: string' \
      -H 'X-API-VERSION: string'
    
    
    
    GET /api/v4/folders/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    IF_MODIFIED_SINCE: 2018-03-22
    IF_NONE_MATCH: string
    X-API-VERSION: string
    
    
    
    var headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/folders/{id}.json',
      method: 'get',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'IF_MODIFIED_SINCE':'2018-03-22',
      'IF_NONE_MATCH':'string',
      'X-API-VERSION':'string'
    
    
    };
    
    
    fetch('/api/v4/folders/{id}.json',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'IF_MODIFIED_SINCE' => '2018-03-22',
      'IF_NONE_MATCH' => 'string',
      'X-API-VERSION' => 'string'
    }
    
    
    result = RestClient.get '/api/v4/folders/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'IF_MODIFIED_SINCE': '2018-03-22',
      'IF_NONE_MATCH': 'string',
      'X-API-VERSION': 'string'
    }
    
    
    r = requests.get('/api/v4/folders/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/folders/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /folders/{id}.json

    Return the data for a single Folder

    Outlines the parameters, optional and required, used when requesting the data for a single Folder

    Parameters

    Parameter In Type Required Description
    IF_MODIFIED_SINCE header string(date) false The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
    IF_NONE_MATCH header string false The server will send the requested resource with a 200 status, but only if the existing resource's ETag doesn't match any of the values listed.
    X-API-VERSION header string false The API minor version. Default: latest version.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    id path integer(int32) true The unique identifier for the Folder.

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok FolderShow
    304 Not Modified Not Modified None
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    429 Too Many Requests Too Many Requests Error

    Folder#update

    Code samples

    # You can also use wget
    curl -X PATCH /api/v4/folders/{id}.json \
      -H 'Content-Type: multipart/form-data' \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    PATCH /api/v4/folders/{id}.json HTTP/1.1
    Host: null
    Content-Type: multipart/form-data
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/folders/{id}.json',
      method: 'patch',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "data": {
        "document_category": {
          "id": 0
        },
        "name": "string",
        "parent": {
          "id": 0,
          "type": "Folder"
        },
        "restore": true
      }
    }';
    const headers = {
      'Content-Type':'multipart/form-data',
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/folders/{id}.json',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'multipart/form-data',
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.patch '/api/v4/folders/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'multipart/form-data',
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.patch('/api/v4/folders/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/folders/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PATCH /folders/{id}.json

    Update a single Folder

    Update Folder, move Folder to another Folder, and/or restore a trashed Folder.

    Body parameter

    {
      "data": {
        "document_category": {
          "id": 0
        },
        "name": "string",
        "parent": {
          "id": 0,
          "type": "Folder"
        },
        "restore": true
      }
    }
    
    data:
      document_category:
        id: 0
      name: string
      parent:
        id: 0
        type: Folder
      restore: true
    
    
    

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    id path integer(int32) true The unique identifier for the Folder.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    fields query string false The fields to be returned. See response samples for what fields are available. For more information see the fields section.
    body body object false JSON body
    » data body object true No description
    »» document_category body object false No description
    »»» id body integer(int32) false The unique identifier for a single DocumentCategory associated with the Folder. Use the keyword null to specify no association.
    »» name body string false Name of the Folder
    »» parent body object false No description
    »»» id body integer(int32) false The unique identifier for a single Folder or Matter associated with the Folder. The keyword null is not valid for this field.
    »»» type body string false Type of parent object.
    »» restore body boolean false Whether or not a trashed Folder should be restored.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Enumerated Values

    Parameter Value
    »»» type Folder
    »»» type Matter

    Example responses

    Responses

    Status Meaning Description Schema
    200 OK Ok FolderShow
    400 Bad Request Bad Request Error
    401 Unauthorized Unauthorized Error
    403 Forbidden Forbidden Error
    404 Not Found Not Found Error
    422 Unprocessable Entity Unprocessable Entity Error
    429 Too Many Requests Too Many Requests Error

    Folder#destroy

    Code samples

    # You can also use wget
    curl -X DELETE /api/v4/folders/{id}.json \
      -H 'Accept: */*' \
      -H 'X-API-VERSION: string' \
      -H 'X-BULK: true'
    
    
    
    DELETE /api/v4/folders/{id}.json HTTP/1.1
    Host: null
    
    
    Accept: */*
    X-API-VERSION: string
    X-BULK: true
    
    
    
    var headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    $.ajax({
      url: '/api/v4/folders/{id}.json',
      method: 'delete',
    
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    
    const request = require('node-fetch');
    
    
    const headers = {
      'Accept':'*/*',
      'X-API-VERSION':'string',
      'X-BULK':'true'
    
    
    };
    
    
    fetch('/api/v4/folders/{id}.json',
    {
      method: 'DELETE',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => '*/*',
      'X-API-VERSION' => 'string',
      'X-BULK' => 'true'
    }
    
    
    result = RestClient.delete '/api/v4/folders/{id}.json',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': '*/*',
      'X-API-VERSION': 'string',
      'X-BULK': 'true'
    }
    
    
    r = requests.delete('/api/v4/folders/{id}.json', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("/api/v4/folders/{id}.json");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /folders/{id}.json

    Delete a single Folder

    Deleting a Folder using this method will move it to the trash instead of permanently deleting it. Trashed Folders are permanently deleted after 30 days.

    Parameters

    Parameter In Type Required Description
    X-API-VERSION header string false The API minor version. Default: latest version.
    X-BULK header boolean false An indicator if bulk actions should be performed.
    id path integer(int32) true The unique identifier for the Folder.

    Detailed descriptions

    X-BULK: An indicator if bulk actions should be performed. When performing a bulk action, the id path parameter is not required.

    Example responses

    Responses

    Status Meaning Description Schema
    204 No Content No Content None
    403 Forbidden Forbidden Error

    Schemas

    ErrorDetail

    {
      "type": "string",
      "message": "string"
    }
    

    Properties

    Name Type Required Description
    type string true Unique name for the error
    message string true Detailed message about the error

    Error

    {
      "error": {
        "type": "string",
        "message": "string"
      }
    }
    

    Properties

    Name Type Required Description
    error ErrorDetail true No description

    IdsResponse

    {
      "data": [
        0
      ]
    }
    

    Properties

    Name Type Required Description
    data [integer] true A list of ids

    Webhook_base

    {
      "id": 0,
      "url": "string",
      "fields": "string",
      "shared_secret": "string",
      "model": "activity",
      "status": "pending",
      "expires_at": "2018-03-22T20:30:34Z",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Webhook
    url string false The URL to send the data when the events are triggered
    fields string false Fields to be included in the webhook request
    shared_secret string false A shared secret used to create a signature for the payload
    model string false What kind of records the webhook is for
    status string false The current status of the webhook.
    expires_at string(date-time) false The time webhook will expire (as a ISO-8601 timestamp)
    created_at string(date-time) false The time the Webhook was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Webhook was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    model activity
    model bill
    model calendar_entry
    model communication
    model contact
    model matter
    model task
    status pending
    status enabled
    status suspended

    Webhook

    {
      "id": 0,
      "url": "string",
      "fields": "string",
      "shared_secret": "string",
      "model": "activity",
      "status": "pending",
      "expires_at": "2018-03-22T20:30:34Z",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "user": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Webhook_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » user User_base false No description

    WebhookShow

    {
      "data": {
        "id": 0,
        "url": "string",
        "fields": "string",
        "shared_secret": "string",
        "model": "activity",
        "status": "pending",
        "expires_at": "2018-03-22T20:30:34Z",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "user": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data Webhook true No description

    WebhookList

    {
      "data": [
        {
          "id": 0,
          "url": "string",
          "fields": "string",
          "shared_secret": "string",
          "model": "activity",
          "status": "pending",
          "expires_at": "2018-03-22T20:30:34Z",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "user": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Webhook] true Webhook List Response

    TrustLineItem_base

    {
      "id": 0,
      "etag": "string",
      "date": "2018-03-22",
      "total": 0,
      "note": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the TrustLineItem
    etag string false ETag for the TrustLineItem
    date string(date) false The date of the TrustLineItem (as a ISO-8601 date)
    total number(double) false The total amount for the TrustLineItem
    note string false Note for the TrustLineItem
    created_at string(date-time) false The time the TrustLineItem was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the TrustLineItem was last updated (as a ISO-8601 timestamp)

    TrustLineItem

    {
      "id": 0,
      "etag": "string",
      "date": "2018-03-22",
      "total": 0,
      "note": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "bill": {
        "id": 0,
        "etag": "string",
        "number": "string",
        "issued_at": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "due_at": "2018-03-22",
        "tax_rate": 0,
        "secondary_tax_rate": 0,
        "updated_at": "2018-03-22T20:30:34Z",
        "subject": "string",
        "purchase_order": "string",
        "type": "MatterBill",
        "memo": "string",
        "start_at": "2018-03-22",
        "end_at": "2018-03-22",
        "balance": 0,
        "config": "string",
        "state": "draft",
        "kind": "revenue_kind",
        "total": 0,
        "paid": 0,
        "paid_at": "2018-03-22T20:30:34Z",
        "pending": 0,
        "due": 0,
        "can_update": true,
        "credits_issued": 0,
        "client_addresses": "string",
        "shared": true,
        "sub_total": 0,
        "tax_sum": 0,
        "secondary_tax_sum": 0
      },
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "client": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous TrustLineItem_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » bill Bill_base false No description
    » matter Matter_base false No description
    » client Contact_base false No description

    TrustLineItemShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "date": "2018-03-22",
        "total": 0,
        "note": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "bill": {
          "id": 0,
          "etag": "string",
          "number": "string",
          "issued_at": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "due_at": "2018-03-22",
          "tax_rate": 0,
          "secondary_tax_rate": 0,
          "updated_at": "2018-03-22T20:30:34Z",
          "subject": "string",
          "purchase_order": "string",
          "type": "MatterBill",
          "memo": "string",
          "start_at": "2018-03-22",
          "end_at": "2018-03-22",
          "balance": 0,
          "config": "string",
          "state": "draft",
          "kind": "revenue_kind",
          "total": 0,
          "paid": 0,
          "paid_at": "2018-03-22T20:30:34Z",
          "pending": 0,
          "due": 0,
          "can_update": true,
          "credits_issued": 0,
          "client_addresses": "string",
          "shared": true,
          "sub_total": 0,
          "tax_sum": 0,
          "secondary_tax_sum": 0
        },
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "client": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data TrustLineItem true No description

    TrustLineItemList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "date": "2018-03-22",
          "total": 0,
          "note": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "bill": {
            "id": 0,
            "etag": "string",
            "number": "string",
            "issued_at": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "due_at": "2018-03-22",
            "tax_rate": 0,
            "secondary_tax_rate": 0,
            "updated_at": "2018-03-22T20:30:34Z",
            "subject": "string",
            "purchase_order": "string",
            "type": "MatterBill",
            "memo": "string",
            "start_at": "2018-03-22",
            "end_at": "2018-03-22",
            "balance": 0,
            "config": "string",
            "state": "draft",
            "kind": "revenue_kind",
            "total": 0,
            "paid": 0,
            "paid_at": "2018-03-22T20:30:34Z",
            "pending": 0,
            "due": 0,
            "can_update": true,
            "credits_issued": 0,
            "client_addresses": "string",
            "shared": true,
            "sub_total": 0,
            "tax_sum": 0,
            "secondary_tax_sum": 0
          },
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "client": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [TrustLineItem] true TrustLineItem List Response

    ReminderTemplate_base

    {
      "id": 0,
      "etag": "string",
      "duration": 0,
      "notification_type": "Email",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ReminderTemplate
    etag string false ETag for the ReminderTemplate
    duration integer(int32) false The time in minutes to remind user before the subject.
    notification_type string false The type of method to be notified by
    created_at string(date-time) false The time the ReminderTemplate was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the ReminderTemplate was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    notification_type Email
    notification_type Popup

    ReminderTemplate

    {
      "id": 0,
      "etag": "string",
      "duration": 0,
      "notification_type": "Email",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ReminderTemplate_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    TaskTemplate_base

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "description": "string",
      "priority": "High",
      "private": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the TaskTemplate
    etag string false ETag for the TaskTemplate
    name string false The name of the TaskTemplate
    description string false A detailed description of the TaskTemplate
    priority string false TaskTemplate priority
    private boolean false Whether the TaskTemplate is private.
    created_at string(date-time) false The time the TaskTemplate was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the TaskTemplate was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    priority High
    priority Normal
    priority Low

    TaskTemplate

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "description": "string",
      "priority": "High",
      "private": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "task_template_list": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "description": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "template_creator": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "reminder_templates": [
        {
          "id": 0,
          "etag": "string",
          "duration": 0,
          "notification_type": "Email",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous TaskTemplate_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » task_template_list TaskTemplateList_base false No description
    » template_creator User_base false No description
    » reminder_templates [ReminderTemplate_base] false ReminderTemplate

    TaskTemplateShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "description": "string",
        "priority": "High",
        "private": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "task_template_list": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "description": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "template_creator": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "reminder_templates": [
          {
            "id": 0,
            "etag": "string",
            "duration": 0,
            "notification_type": "Email",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data TaskTemplate true No description

    TaskTemplateList

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "description": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "practice_area": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "name": "string",
        "code": "string"
      },
      "creator": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous TaskTemplateList_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » practice_area PracticeArea_base false No description
    » creator User_base false No description

    Report_base

    {
      "id": 0,
      "name": "string",
      "state": "not_started",
      "kind": "revenue",
      "format": "pdf",
      "progress": 0,
      "created_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Report
    name string false A specified name for the report
    state string false The current state of the report
    kind string false The kind of report to generate
    format string false The requested format of the report
    progress integer(int32) false The integer percentage of how complete the report is.
    created_at string(date-time) false The time the Report was created (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    state not_started
    state queued
    state in_progress
    state failed
    state completed
    kind revenue
    kind fee_allocation
    kind trust_management
    kind accounts_receivable_aging
    kind finance_mrr
    kind finance_purchases
    format pdf
    format csv
    format html

    Report

    {
      "id": 0,
      "name": "string",
      "state": "not_started",
      "kind": "revenue",
      "format": "pdf",
      "progress": 0,
      "created_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Report_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    ReportShow

    {
      "data": {
        "id": 0,
        "name": "string",
        "state": "not_started",
        "kind": "revenue",
        "format": "pdf",
        "progress": 0,
        "created_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    Name Type Required Description
    data Report true No description

    LineItemTotals_base

    {
      "quantity": 0,
      "price": 0,
      "discount_percent": 0,
      "total": 0
    }
    

    Properties

    Name Type Required Description
    quantity number(double) false Sum of quantity for included line items.
    price number(double) false Sum of price for included line items.
    discount_percent number(double) false Sum of discount as percentage for included line items.
    total number(double) false Sum of total for included line items.

    LineItemTotals

    {
      "quantity": 0,
      "price": 0,
      "discount_percent": 0,
      "total": 0
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous LineItemTotals_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    LineItem_base

    {
      "id": 0,
      "etag": "string",
      "type": "ActivityLineItem",
      "description": "string",
      "date": "2018-03-22",
      "price": 0,
      "taxable": true,
      "kind": "Service",
      "note": "string",
      "secondary_taxable": true,
      "total": 0,
      "tax": 0,
      "secondary_tax": 0,
      "sub_total": 0,
      "quantity": 0,
      "group_ordering": 0,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the LineItem
    etag string false ETag for the LineItem
    type string false The type of the LineItem
    description string false The description for the LineItem
    date string(date) false The LineItem date (as a ISO-8601 date)
    price number(double) false The price of the LineItem
    taxable boolean false Whether the LineItem is taxable
    kind string false The kind of LineItem
    note string false The note attached to the LineItem
    secondary_taxable boolean false Whether the LineItem is secondary taxable
    total number(double) false The total amount for the LineItem
    tax number(double) false The tax amount for the LineItem
    secondary_tax number(double) false The secondary tax amount for the LineItem
    sub_total number(double) false The subtotal amount for the LineItem
    quantity number(double) false The amount of hours for the LineItem
    group_ordering integer(int32) false The value to specify the ordering of the LineItem on a bill
    created_at string(date-time) false The time the LineItem was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the LineItem was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    type ActivityLineItem
    type LineItem
    type SummaryLineItem
    kind Service
    kind Expense

    LineItem

    {
      "id": 0,
      "etag": "string",
      "type": "ActivityLineItem",
      "description": "string",
      "date": "2018-03-22",
      "price": 0,
      "taxable": true,
      "kind": "Service",
      "note": "string",
      "secondary_taxable": true,
      "total": 0,
      "tax": 0,
      "secondary_tax": 0,
      "sub_total": 0,
      "quantity": 0,
      "group_ordering": 0,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "bill": {
        "id": 0,
        "etag": "string",
        "number": "string",
        "issued_at": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "due_at": "2018-03-22",
        "tax_rate": 0,
        "secondary_tax_rate": 0,
        "updated_at": "2018-03-22T20:30:34Z",
        "subject": "string",
        "purchase_order": "string",
        "type": "MatterBill",
        "memo": "string",
        "start_at": "2018-03-22",
        "end_at": "2018-03-22",
        "balance": 0,
        "config": "string",
        "state": "draft",
        "kind": "revenue_kind",
        "total": 0,
        "paid": 0,
        "paid_at": "2018-03-22T20:30:34Z",
        "pending": 0,
        "due": 0,
        "can_update": true,
        "credits_issued": 0,
        "client_addresses": "string",
        "shared": true,
        "sub_total": 0,
        "tax_sum": 0,
        "secondary_tax_sum": 0
      },
      "activity": {
        "id": 0,
        "etag": "string",
        "type": "TimeEntry",
        "date": "2018-03-22",
        "quantity_in_hours": 0,
        "rounded_quantity_in_hours": 0,
        "quantity": 0,
        "rounded_quantity": 0,
        "price": 0,
        "note": "string",
        "flat_rate": true,
        "billed": true,
        "on_bill": true,
        "total": 0,
        "contingency_fee": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "user": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "discount": {
        "rate": 0,
        "type": "percentage",
        "note": "string",
        "early_payment_rate": 0,
        "early_payment_period": 0
      },
      "included_line_item_totals": {
        "quantity": 0,
        "price": 0,
        "discount_percent": 0,
        "total": 0
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous LineItem_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » bill Bill_base false No description
    » activity Activity_base false No description
    » matter Matter_base false No description
    » user User_base false No description
    » discount Discount_base false No description
    » included_line_item_totals LineItemTotals_base false No description

    LineItemShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "type": "ActivityLineItem",
        "description": "string",
        "date": "2018-03-22",
        "price": 0,
        "taxable": true,
        "kind": "Service",
        "note": "string",
        "secondary_taxable": true,
        "total": 0,
        "tax": 0,
        "secondary_tax": 0,
        "sub_total": 0,
        "quantity": 0,
        "group_ordering": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "bill": {
          "id": 0,
          "etag": "string",
          "number": "string",
          "issued_at": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "due_at": "2018-03-22",
          "tax_rate": 0,
          "secondary_tax_rate": 0,
          "updated_at": "2018-03-22T20:30:34Z",
          "subject": "string",
          "purchase_order": "string",
          "type": "MatterBill",
          "memo": "string",
          "start_at": "2018-03-22",
          "end_at": "2018-03-22",
          "balance": 0,
          "config": "string",
          "state": "draft",
          "kind": "revenue_kind",
          "total": 0,
          "paid": 0,
          "paid_at": "2018-03-22T20:30:34Z",
          "pending": 0,
          "due": 0,
          "can_update": true,
          "credits_issued": 0,
          "client_addresses": "string",
          "shared": true,
          "sub_total": 0,
          "tax_sum": 0,
          "secondary_tax_sum": 0
        },
        "activity": {
          "id": 0,
          "etag": "string",
          "type": "TimeEntry",
          "date": "2018-03-22",
          "quantity_in_hours": 0,
          "rounded_quantity_in_hours": 0,
          "quantity": 0,
          "rounded_quantity": 0,
          "price": 0,
          "note": "string",
          "flat_rate": true,
          "billed": true,
          "on_bill": true,
          "total": 0,
          "contingency_fee": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "user": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "discount": {
          "rate": 0,
          "type": "percentage",
          "note": "string",
          "early_payment_rate": 0,
          "early_payment_period": 0
        },
        "included_line_item_totals": {
          "quantity": 0,
          "price": 0,
          "discount_percent": 0,
          "total": 0
        }
      }
    }
    

    Properties

    Name Type Required Description
    data LineItem true No description

    LineItemList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "type": "ActivityLineItem",
          "description": "string",
          "date": "2018-03-22",
          "price": 0,
          "taxable": true,
          "kind": "Service",
          "note": "string",
          "secondary_taxable": true,
          "total": 0,
          "tax": 0,
          "secondary_tax": 0,
          "sub_total": 0,
          "quantity": 0,
          "group_ordering": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "bill": {
            "id": 0,
            "etag": "string",
            "number": "string",
            "issued_at": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "due_at": "2018-03-22",
            "tax_rate": 0,
            "secondary_tax_rate": 0,
            "updated_at": "2018-03-22T20:30:34Z",
            "subject": "string",
            "purchase_order": "string",
            "type": "MatterBill",
            "memo": "string",
            "start_at": "2018-03-22",
            "end_at": "2018-03-22",
            "balance": 0,
            "config": "string",
            "state": "draft",
            "kind": "revenue_kind",
            "total": 0,
            "paid": 0,
            "paid_at": "2018-03-22T20:30:34Z",
            "pending": 0,
            "due": 0,
            "can_update": true,
            "credits_issued": 0,
            "client_addresses": "string",
            "shared": true,
            "sub_total": 0,
            "tax_sum": 0,
            "secondary_tax_sum": 0
          },
          "activity": {
            "id": 0,
            "etag": "string",
            "type": "TimeEntry",
            "date": "2018-03-22",
            "quantity_in_hours": 0,
            "rounded_quantity_in_hours": 0,
            "quantity": 0,
            "rounded_quantity": 0,
            "price": 0,
            "note": "string",
            "flat_rate": true,
            "billed": true,
            "on_bill": true,
            "total": 0,
            "contingency_fee": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "user": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "discount": {
            "rate": 0,
            "type": "percentage",
            "note": "string",
            "early_payment_rate": 0,
            "early_payment_period": 0
          },
          "included_line_item_totals": {
            "quantity": 0,
            "price": 0,
            "discount_percent": 0,
            "total": 0
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [LineItem] true LineItem List Response

    TextSnippet_base

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "snippet": "string",
      "phrase": "string",
      "whole_word": true
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the TextSnippet
    etag string false ETag for the TextSnippet
    created_at string(date-time) false The time the TextSnippet was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the TextSnippet was last updated (as a ISO-8601 timestamp)
    snippet string false The abbreviation that should be expanded
    phrase string false The phrase the abbreviation should be expanded to
    whole_word boolean false Whether the TextSnippet abbreviation requires a space after it has been entered to expand to a phrase

    TextSnippet

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "snippet": "string",
      "phrase": "string",
      "whole_word": true
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous TextSnippet_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    TextSnippetShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "snippet": "string",
        "phrase": "string",
        "whole_word": true
      }
    }
    

    Properties

    Name Type Required Description
    data TextSnippet true No description

    TextSnippetList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "snippet": "string",
          "phrase": "string",
          "whole_word": true
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [TextSnippet] true TextSnippet List Response

    CalendarVisibility_base

    {
      "id": "string",
      "etag": "string",
      "color": {
        "r": 0.396078431372549,
        "g": 0.5490196078431373,
        "b": 0.8549019607843137
      },
      "light_color": {
        "r": 0.7019607843137254,
        "g": 0.7843137254901961,
        "b": 1
      },
      "visible": true,
      "name": true
    }
    

    Properties

    Name Type Required Description
    id string false Unique identifier for the CalendarVisibility
    etag string false ETag for the CalendarVisibility
    color string false Calendar color
    light_color string false Accent color to complement the main calendar color.
    visible boolean false Whether the CalendarVisibility will be shown by default in the Clio Web UI.
    name boolean false Calendar name

    Enumerated Values

    Property Value
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]

    CalendarVisibility

    {
      "id": "string",
      "etag": "string",
      "color": {
        "r": 0.396078431372549,
        "g": 0.5490196078431373,
        "b": 0.8549019607843137
      },
      "light_color": {
        "r": 0.7019607843137254,
        "g": 0.7843137254901961,
        "b": 1
      },
      "visible": true,
      "name": true
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous CalendarVisibility_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    CalendarVisibilityShow

    {
      "data": {
        "id": "string",
        "etag": "string",
        "color": {
          "r": 0.396078431372549,
          "g": 0.5490196078431373,
          "b": 0.8549019607843137
        },
        "light_color": {
          "r": 0.7019607843137254,
          "g": 0.7843137254901961,
          "b": 1
        },
        "visible": true,
        "name": true
      }
    }
    

    Properties

    Name Type Required Description
    data CalendarVisibility true No description

    CalendarVisibilityList

    {
      "data": [
        {
          "id": "string",
          "etag": "string",
          "color": {
            "r": 0.396078431372549,
            "g": 0.5490196078431373,
            "b": 0.8549019607843137
          },
          "light_color": {
            "r": 0.7019607843137254,
            "g": 0.7843137254901961,
            "b": 1
          },
          "visible": true,
          "name": true
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [CalendarVisibility] true CalendarVisibility List Response

    TrustRequest_base

    {
      "id": 0,
      "etag": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the TrustRequest
    etag string false ETag for the TrustRequest

    TrustRequest

    {
      "id": 0,
      "etag": "string"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous TrustRequest_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    TrustRequestShow

    {
      "data": {
        "id": 0,
        "etag": "string"
      }
    }
    

    Properties

    Name Type Required Description
    data TrustRequest true No description

    CreditMemo_base

    {
      "id": 0,
      "etag": "string",
      "date": "2018-03-22",
      "amount": 0,
      "description": "string",
      "discount": true,
      "voided_at": "2018-03-22T20:30:34Z",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the CreditMemo
    etag string false ETag for the CreditMemo
    date string(date) false Date the CreditMemo was recorded (as a ISO-8601 date)
    amount number(double) false Total amount credited
    description string false A detailed description for the CreditMemo
    discount boolean false Whether the CreditMemo is applied as discount
    voided_at string(date-time) false Time the CreditMemo was voided (as a ISO-8601 timestamp)
    created_at string(date-time) false The time the CreditMemo was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the CreditMemo was last updated (as a ISO-8601 timestamp)

    CreditMemo

    {
      "id": 0,
      "etag": "string",
      "date": "2018-03-22",
      "amount": 0,
      "description": "string",
      "discount": true,
      "voided_at": "2018-03-22T20:30:34Z",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "user": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "contact": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      },
      "allocations": [
        {
          "id": 0,
          "etag": "string",
          "date": "2018-03-22",
          "amount": 0,
          "interest": true,
          "voided_at": "2018-03-22T20:30:34Z",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "description": "string",
          "source_bank_account": "string",
          "has_online_payment": true,
          "destroyable": true
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous CreditMemo_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » user User_base false No description
    » contact Contact_base false No description
    » allocations [Allocation_base] false Allocation

    CreditMemoShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "date": "2018-03-22",
        "amount": 0,
        "description": "string",
        "discount": true,
        "voided_at": "2018-03-22T20:30:34Z",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "user": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "contact": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        },
        "allocations": [
          {
            "id": 0,
            "etag": "string",
            "date": "2018-03-22",
            "amount": 0,
            "interest": true,
            "voided_at": "2018-03-22T20:30:34Z",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "description": "string",
            "source_bank_account": "string",
            "has_online_payment": true,
            "destroyable": true
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data CreditMemo true No description

    CreditMemoList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "date": "2018-03-22",
          "amount": 0,
          "description": "string",
          "discount": true,
          "voided_at": "2018-03-22T20:30:34Z",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "user": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "contact": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          },
          "allocations": [
            {
              "id": 0,
              "etag": "string",
              "date": "2018-03-22",
              "amount": 0,
              "interest": true,
              "voided_at": "2018-03-22T20:30:34Z",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z",
              "description": "string",
              "source_bank_account": "string",
              "has_online_payment": true,
              "destroyable": true
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [CreditMemo] true CreditMemo List Response

    UtbmsSet_base

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "enabled": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the UtbmsSet
    etag string false ETag for the UtbmsSet
    name string false The name of the UtbmsSet
    enabled boolean false Whether the UtbmsSet is enabled for the current account.
    created_at string(date-time) false The time the UtbmsSet was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the UtbmsSet was last updated (as a ISO-8601 timestamp)

    UtbmsSet

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "enabled": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous UtbmsSet_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    UtbmsSetList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "name": "string",
          "enabled": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [UtbmsSet] true UtbmsSet List Response

    ConversationMembership_base

    {
      "id": 0,
      "etag": "string",
      "read": true,
      "archived": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ConversationMembership
    etag string false ETag for the ConversationMembership
    read boolean false Whether or not the ConversationMembership has been read by the member
    archived boolean false Whether or not the ConversationMembership has been archived by the member
    created_at string(date-time) false The time the ConversationMembership was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the ConversationMembership was last updated (as a ISO-8601 timestamp)

    ConversationMembership

    {
      "id": 0,
      "etag": "string",
      "read": true,
      "archived": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "member": {
        "id": 0,
        "type": "Contact",
        "identifier": "string",
        "secondary_identifier": "string",
        "enabled": true,
        "name": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ConversationMembership_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » member Participant_base false No description

    Conversation_base

    {
      "id": 0,
      "etag": "string",
      "subject": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Conversation
    etag string false ETag for the Conversation
    subject string false The subject of the Conversation
    created_at string(date-time) false The time the Conversation was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Conversation was last updated (as a ISO-8601 timestamp)

    Conversation

    {
      "id": 0,
      "etag": "string",
      "subject": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "last_message": {
        "id": 0,
        "etag": "string",
        "body": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "first_message": {
        "id": 0,
        "etag": "string",
        "body": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "memberships": [
        {
          "id": 0,
          "etag": "string",
          "read": true,
          "archived": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "member": {
            "id": 0,
            "type": "Contact",
            "identifier": "string",
            "secondary_identifier": "string",
            "enabled": true,
            "name": "string"
          }
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Conversation_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » last_message ConversationMessage_base false No description
    » first_message ConversationMessage_base false No description
    » matter Matter_base false No description
    » memberships [ConversationMembership] false ConversationMembership

    ConversationShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "subject": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "last_message": {
          "id": 0,
          "etag": "string",
          "body": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "first_message": {
          "id": 0,
          "etag": "string",
          "body": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "memberships": [
          {
            "id": 0,
            "etag": "string",
            "read": true,
            "archived": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "member": {
              "id": 0,
              "type": "Contact",
              "identifier": "string",
              "secondary_identifier": "string",
              "enabled": true,
              "name": "string"
            }
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data Conversation true No description

    ConversationList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "subject": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "last_message": {
            "id": 0,
            "etag": "string",
            "body": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "first_message": {
            "id": 0,
            "etag": "string",
            "body": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "memberships": [
            {
              "id": 0,
              "etag": "string",
              "read": true,
              "archived": true,
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z",
              "member": {
                "id": 0,
                "type": "Contact",
                "identifier": "string",
                "secondary_identifier": "string",
                "enabled": true,
                "name": "string"
              }
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Conversation] true Conversation List Response

    ConversationMessage_base

    {
      "id": 0,
      "etag": "string",
      "body": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ConversationMessage
    etag string false ETag for the ConversationMessage
    body string false The main content of the ConversationMessage
    created_at string(date-time) false The time the ConversationMessage was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the ConversationMessage was last updated (as a ISO-8601 timestamp)

    ConversationMessage

    {
      "id": 0,
      "etag": "string",
      "body": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "sender": {
        "id": 0,
        "type": "Contact",
        "identifier": "string",
        "secondary_identifier": "string",
        "enabled": true,
        "name": "string"
      },
      "document": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "deleted_at": "2018-03-22T20:30:34Z",
        "type": "Document",
        "locked": true,
        "name": "string",
        "received_at": "2018-03-22T20:30:34Z",
        "filename": "string"
      },
      "conversation": {
        "id": 0,
        "etag": "string",
        "subject": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "receivers": [
        {
          "id": 0,
          "type": "Contact",
          "identifier": "string",
          "secondary_identifier": "string",
          "enabled": true,
          "name": "string"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ConversationMessage_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » sender Participant_base false No description
    » document Document_base false No description
    » conversation Conversation_base false No description
    » receivers [Participant_base] false Participant

    ConversationMessageShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "body": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "sender": {
          "id": 0,
          "type": "Contact",
          "identifier": "string",
          "secondary_identifier": "string",
          "enabled": true,
          "name": "string"
        },
        "document": {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "deleted_at": "2018-03-22T20:30:34Z",
          "type": "Document",
          "locked": true,
          "name": "string",
          "received_at": "2018-03-22T20:30:34Z",
          "filename": "string"
        },
        "conversation": {
          "id": 0,
          "etag": "string",
          "subject": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "receivers": [
          {
            "id": 0,
            "type": "Contact",
            "identifier": "string",
            "secondary_identifier": "string",
            "enabled": true,
            "name": "string"
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data ConversationMessage true No description

    ConversationMessageList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "body": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "sender": {
            "id": 0,
            "type": "Contact",
            "identifier": "string",
            "secondary_identifier": "string",
            "enabled": true,
            "name": "string"
          },
          "document": {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "deleted_at": "2018-03-22T20:30:34Z",
            "type": "Document",
            "locked": true,
            "name": "string",
            "received_at": "2018-03-22T20:30:34Z",
            "filename": "string"
          },
          "conversation": {
            "id": 0,
            "etag": "string",
            "subject": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "receivers": [
            {
              "id": 0,
              "type": "Contact",
              "identifier": "string",
              "secondary_identifier": "string",
              "enabled": true,
              "name": "string"
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [ConversationMessage] true ConversationMessage List Response

    Attendee_base

    {
      "id": 0,
      "type": "Contact",
      "name": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Attendee
    type string false The class name of the Attendee
    name string false The name of the Attendee

    Enumerated Values

    Property Value
    type Contact
    type Calendar

    Attendee

    {
      "id": 0,
      "type": "Contact",
      "name": "string",
      "user": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "notification_methods": [
        {
          "id": 0,
          "etag": "string",
          "type": "Email",
          "email_address": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Attendee_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » user User_base false No description
    » notification_methods [NotificationMethod_base] false NotificationMethod

    Calendar_base

    {
      "id": 0,
      "etag": "string",
      "color": {
        "r": 0.4,
        "g": 0.5647058823529412,
        "b": 1
      },
      "light_color": {
        "r": 0.7019607843137254,
        "g": 0.7843137254901961,
        "b": 1
      },
      "court_rules_default_calendar": true,
      "name": "string",
      "permission": "owner",
      "type": "AccountCalendar",
      "visible": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Calendar
    etag string false ETag for the Calendar
    color string false Color
    light_color string false Accent color to complement the main calendar color.
    court_rules_default_calendar boolean false Whether the calendar is default court rules calendar for current user
    name string false The name of the Calendar
    permission string false The user's permission to the Calendar
    type string false The type of the Calendar
    visible boolean false Whether the Calendar will be shown by default in the Clio Web UI.
    created_at string(date-time) false The time the Calendar was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Calendar was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    light_color [object Object]
    permission owner
    permission editor
    permission viewer
    permission limited_viewer
    permission none
    type AccountCalendar
    type AdhocCalendar
    type UserCalendar

    Calendar

    {
      "id": 0,
      "etag": "string",
      "color": {
        "r": 0.4,
        "g": 0.5647058823529412,
        "b": 1
      },
      "light_color": {
        "r": 0.7019607843137254,
        "g": 0.7843137254901961,
        "b": 1
      },
      "court_rules_default_calendar": true,
      "name": "string",
      "permission": "owner",
      "type": "AccountCalendar",
      "visible": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "creator": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Calendar_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » creator User_base false No description

    CalendarShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "color": {
          "r": 0.4,
          "g": 0.5647058823529412,
          "b": 1
        },
        "light_color": {
          "r": 0.7019607843137254,
          "g": 0.7843137254901961,
          "b": 1
        },
        "court_rules_default_calendar": true,
        "name": "string",
        "permission": "owner",
        "type": "AccountCalendar",
        "visible": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "creator": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data Calendar true No description

    CalendarList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "color": {
            "r": 0.4,
            "g": 0.5647058823529412,
            "b": 1
          },
          "light_color": {
            "r": 0.7019607843137254,
            "g": 0.7843137254901961,
            "b": 1
          },
          "court_rules_default_calendar": true,
          "name": "string",
          "permission": "owner",
          "type": "AccountCalendar",
          "visible": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "creator": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Calendar] true Calendar List Response

    ServiceType_base

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "system_id": 0,
      "description": "string",
      "default": true
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ServiceType
    etag string false ETag for the ServiceType
    created_at string(date-time) false The time the ServiceType was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the ServiceType was last updated (as a ISO-8601 timestamp)
    system_id integer(int32) false Server ID
    description string false A detailed description of the ServiceType
    default boolean false Whether ServiceType is default for the current user

    ServiceType

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "system_id": 0,
      "description": "string",
      "default": true
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ServiceType_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    ServiceTypeShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "system_id": 0,
        "description": "string",
        "default": true
      }
    }
    

    Properties

    Name Type Required Description
    data ServiceType true No description

    ServiceTypeList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "system_id": 0,
          "description": "string",
          "default": true
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [ServiceType] true ServiceType List Response

    MatterDocket_base

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "start_date": "2018-03-22",
      "start_time": "2018-03-22T20:30:34Z",
      "status": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "deleted_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the MatterDocket
    etag string false ETag for the MatterDocket
    name string false The name of the MatterDocket
    start_date string(date) false The date the MatterDocket will start (as a ISO-8601 date)
    start_time string(date-time) false The time the MatterDocket will start, required for specific triggers (as a ISO-8601 timestamp)
    status string false The status of the MatterDocket creation
    created_at string(date-time) false The time the MatterDocket was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the MatterDocket was last updated (as a ISO-8601 timestamp)
    deleted_at string(date-time) false The time the MatterDocket was deleted (as a ISO-8601 timestamp)

    MatterDocket

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "start_date": "2018-03-22",
      "start_time": "2018-03-22T20:30:34Z",
      "status": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "deleted_at": "2018-03-22T20:30:34Z",
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "jurisdiction": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "system_id": 0,
        "description": "string",
        "default": true
      },
      "trigger": {
        "id": 0,
        "etag": "string",
        "system_id": 0,
        "description": "string",
        "do_not_recalculate": true,
        "is_served": true,
        "is_requirements_required": true
      },
      "service_type": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "system_id": 0,
        "description": "string",
        "default": true
      },
      "calendar_entries": [
        {
          "id": "string",
          "etag": "string",
          "summary": "string",
          "description": "string",
          "location": "string",
          "start_at": "2018-03-22T20:30:34Z",
          "end_at": "2018-03-22T20:30:34Z",
          "all_day": true,
          "recurrence_rule": "string",
          "parent_calendar_entry_id": 0,
          "court_rule": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "permission": "string"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous MatterDocket_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » matter Matter_base false No description
    » jurisdiction Jurisdiction_base false No description
    » trigger JurisdictionsToTrigger_base false No description
    » service_type ServiceType_base false No description
    » calendar_entries [CalendarEntry_base] false CalendarEntry

    MatterDocketShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "start_date": "2018-03-22",
        "start_time": "2018-03-22T20:30:34Z",
        "status": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "deleted_at": "2018-03-22T20:30:34Z",
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "jurisdiction": {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "system_id": 0,
          "description": "string",
          "default": true
        },
        "trigger": {
          "id": 0,
          "etag": "string",
          "system_id": 0,
          "description": "string",
          "do_not_recalculate": true,
          "is_served": true,
          "is_requirements_required": true
        },
        "service_type": {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "system_id": 0,
          "description": "string",
          "default": true
        },
        "calendar_entries": [
          {
            "id": "string",
            "etag": "string",
            "summary": "string",
            "description": "string",
            "location": "string",
            "start_at": "2018-03-22T20:30:34Z",
            "end_at": "2018-03-22T20:30:34Z",
            "all_day": true,
            "recurrence_rule": "string",
            "parent_calendar_entry_id": 0,
            "court_rule": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "permission": "string"
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data MatterDocket true No description

    MatterDocketList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "name": "string",
          "start_date": "2018-03-22",
          "start_time": "2018-03-22T20:30:34Z",
          "status": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "deleted_at": "2018-03-22T20:30:34Z",
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "jurisdiction": {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "system_id": 0,
            "description": "string",
            "default": true
          },
          "trigger": {
            "id": 0,
            "etag": "string",
            "system_id": 0,
            "description": "string",
            "do_not_recalculate": true,
            "is_served": true,
            "is_requirements_required": true
          },
          "service_type": {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "system_id": 0,
            "description": "string",
            "default": true
          },
          "calendar_entries": [
            {
              "id": "string",
              "etag": "string",
              "summary": "string",
              "description": "string",
              "location": "string",
              "start_at": "2018-03-22T20:30:34Z",
              "end_at": "2018-03-22T20:30:34Z",
              "all_day": true,
              "recurrence_rule": "string",
              "parent_calendar_entry_id": 0,
              "court_rule": true,
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z",
              "permission": "string"
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [MatterDocket] true MatterDocket List Response

    CalendarEntry_base

    {
      "id": "string",
      "etag": "string",
      "summary": "string",
      "description": "string",
      "location": "string",
      "start_at": "2018-03-22T20:30:34Z",
      "end_at": "2018-03-22T20:30:34Z",
      "all_day": true,
      "recurrence_rule": "string",
      "parent_calendar_entry_id": 0,
      "court_rule": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "permission": "string"
    }
    

    Properties

    Name Type Required Description
    id string false Unique identifier for the CalendarEntry
    etag string false ETag for the CalendarEntry
    summary string false A short summary of the CalendarEntry
    description string false A detailed description of the CalendarEntry
    location string false The geographic location of the CalendarEntry
    start_at string(date-time) false The time the CalendarEntry starts (as an ISO-8601 timestamp)
    end_at string(date-time) false The time the CalendarEntry ends (as an ISO-8601 timestamp)
    all_day boolean false Whether the event is all day
    recurrence_rule string false Recurrence rule for expanding
    parent_calendar_entry_id integer(int32) false Identifier for the parent CalendarEntry
    court_rule boolean false Whether this event is associated with a Court Rule
    created_at string(date-time) false The time the CalendarEntry was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the CalendarEntry was last updated (as a ISO-8601 timestamp)
    permission string false The view permission for the current user

    CalendarEntry

    {
      "id": "string",
      "etag": "string",
      "summary": "string",
      "description": "string",
      "location": "string",
      "start_at": "2018-03-22T20:30:34Z",
      "end_at": "2018-03-22T20:30:34Z",
      "all_day": true,
      "recurrence_rule": "string",
      "parent_calendar_entry_id": 0,
      "court_rule": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "permission": "string",
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "matter_docket": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "start_date": "2018-03-22",
        "start_time": "2018-03-22T20:30:34Z",
        "status": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "deleted_at": "2018-03-22T20:30:34Z"
      },
      "calendar_owner": {
        "id": 0,
        "etag": "string",
        "color": {
          "r": 0.4,
          "g": 0.5647058823529412,
          "b": 1
        },
        "light_color": {
          "r": 0.7019607843137254,
          "g": 0.7843137254901961,
          "b": 1
        },
        "court_rules_default_calendar": true,
        "name": "string",
        "permission": "owner",
        "type": "AccountCalendar",
        "visible": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "parent_calendar_entry": {
        "id": "string",
        "etag": "string",
        "summary": "string",
        "description": "string",
        "location": "string",
        "start_at": "2018-03-22T20:30:34Z",
        "end_at": "2018-03-22T20:30:34Z",
        "all_day": true,
        "recurrence_rule": "string",
        "parent_calendar_entry_id": 0,
        "court_rule": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "permission": "string"
      },
      "attendees": [
        {
          "id": 0,
          "type": "Contact",
          "name": "string"
        }
      ],
      "reminders": [
        {
          "id": 0,
          "etag": "string",
          "duration": 0,
          "next_delivery_at": "2018-03-22T20:30:34Z",
          "state": "initializing",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ],
      "external_properties": [
        {
          "id": 0,
          "name": "string",
          "value": "string"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous CalendarEntry_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » matter Matter_base false No description
    » matter_docket MatterDocket_base false No description
    » calendar_owner Calendar_base false No description
    » parent_calendar_entry CalendarEntry_base false No description
    » attendees [Attendee_base] false Attendee
    » reminders [Reminder_base] false Reminder
    » external_properties [ExternalProperty_base] false ExternalProperty

    CalendarEntryShow

    {
      "data": {
        "id": "string",
        "etag": "string",
        "summary": "string",
        "description": "string",
        "location": "string",
        "start_at": "2018-03-22T20:30:34Z",
        "end_at": "2018-03-22T20:30:34Z",
        "all_day": true,
        "recurrence_rule": "string",
        "parent_calendar_entry_id": 0,
        "court_rule": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "permission": "string",
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "matter_docket": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "start_date": "2018-03-22",
          "start_time": "2018-03-22T20:30:34Z",
          "status": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "deleted_at": "2018-03-22T20:30:34Z"
        },
        "calendar_owner": {
          "id": 0,
          "etag": "string",
          "color": {
            "r": 0.4,
            "g": 0.5647058823529412,
            "b": 1
          },
          "light_color": {
            "r": 0.7019607843137254,
            "g": 0.7843137254901961,
            "b": 1
          },
          "court_rules_default_calendar": true,
          "name": "string",
          "permission": "owner",
          "type": "AccountCalendar",
          "visible": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "parent_calendar_entry": {
          "id": "string",
          "etag": "string",
          "summary": "string",
          "description": "string",
          "location": "string",
          "start_at": "2018-03-22T20:30:34Z",
          "end_at": "2018-03-22T20:30:34Z",
          "all_day": true,
          "recurrence_rule": "string",
          "parent_calendar_entry_id": 0,
          "court_rule": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "permission": "string"
        },
        "attendees": [
          {
            "id": 0,
            "type": "Contact",
            "name": "string"
          }
        ],
        "reminders": [
          {
            "id": 0,
            "etag": "string",
            "duration": 0,
            "next_delivery_at": "2018-03-22T20:30:34Z",
            "state": "initializing",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ],
        "external_properties": [
          {
            "id": 0,
            "name": "string",
            "value": "string"
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data CalendarEntry true No description

    CalendarEntryList

    {
      "data": [
        {
          "id": "string",
          "etag": "string",
          "summary": "string",
          "description": "string",
          "location": "string",
          "start_at": "2018-03-22T20:30:34Z",
          "end_at": "2018-03-22T20:30:34Z",
          "all_day": true,
          "recurrence_rule": "string",
          "parent_calendar_entry_id": 0,
          "court_rule": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "permission": "string",
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "matter_docket": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "start_date": "2018-03-22",
            "start_time": "2018-03-22T20:30:34Z",
            "status": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "deleted_at": "2018-03-22T20:30:34Z"
          },
          "calendar_owner": {
            "id": 0,
            "etag": "string",
            "color": {
              "r": 0.4,
              "g": 0.5647058823529412,
              "b": 1
            },
            "light_color": {
              "r": 0.7019607843137254,
              "g": 0.7843137254901961,
              "b": 1
            },
            "court_rules_default_calendar": true,
            "name": "string",
            "permission": "owner",
            "type": "AccountCalendar",
            "visible": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "parent_calendar_entry": {
            "id": "string",
            "etag": "string",
            "summary": "string",
            "description": "string",
            "location": "string",
            "start_at": "2018-03-22T20:30:34Z",
            "end_at": "2018-03-22T20:30:34Z",
            "all_day": true,
            "recurrence_rule": "string",
            "parent_calendar_entry_id": 0,
            "court_rule": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "permission": "string"
          },
          "attendees": [
            {
              "id": 0,
              "type": "Contact",
              "name": "string"
            }
          ],
          "reminders": [
            {
              "id": 0,
              "etag": "string",
              "duration": 0,
              "next_delivery_at": "2018-03-22T20:30:34Z",
              "state": "initializing",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ],
          "external_properties": [
            {
              "id": 0,
              "name": "string",
              "value": "string"
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [CalendarEntry] true CalendarEntry List Response

    BulkAction_base

    {
      "id": 0,
      "etag": "string",
      "status": "not_started",
      "performed": 0,
      "requested": 0,
      "last_action_performed_at": "2018-03-22T20:30:34Z",
      "response_url": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the BulkAction
    etag string false ETag for the BulkAction
    status string false The current status of the BulkAction request
    performed integer(int32) false Number of request actions performed
    requested integer(int32) false Total number of request actions
    last_action_performed_at string(date-time) false The time the last action performed (as a ISO-8601 timestamp)
    response_url string false The URL where the response can be downloaded. It is only available once the BulkAction is complete.

    Enumerated Values

    Property Value
    status not_started
    status queued
    status in_progress
    status failed
    status completed

    BulkAction

    {
      "id": 0,
      "etag": "string",
      "status": "not_started",
      "performed": 0,
      "requested": 0,
      "last_action_performed_at": "2018-03-22T20:30:34Z",
      "response_url": "string"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous BulkAction_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    BulkActionShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "status": "not_started",
        "performed": 0,
        "requested": 0,
        "last_action_performed_at": "2018-03-22T20:30:34Z",
        "response_url": "string"
      }
    }
    

    Properties

    Name Type Required Description
    data BulkAction true No description

    BankTransaction_base

    {
      "id": 0,
      "type": "string",
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "bank_account_id": 0,
      "source": "string",
      "confirmation": "string",
      "date": "2018-03-22",
      "amount": 0,
      "currency": "string",
      "description": "string",
      "exchange_rate": 0,
      "transaction_type": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the BankTransaction
    type string false The type of the BankTransaction
    etag string false ETag for the BankTransaction
    created_at string(date-time) false The time the BankTransaction was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the BankTransaction was last updated (as a ISO-8601 timestamp)
    bank_account_id integer(int32) false The associated bank account.
    source string false Where the transaction came from.
    confirmation string false The reference code for the transaction.
    date string(date) false The date of the transaction.
    amount number(double) false The amount of the transaction.
    currency string false The currency of the transaction.
    description string false The description of the transaction.
    exchange_rate number(double) false The exchange rate of the transaction.
    transaction_type string false What kind of transaction.

    BankTransaction

    {
      "id": 0,
      "type": "string",
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "bank_account_id": 0,
      "source": "string",
      "confirmation": "string",
      "date": "2018-03-22",
      "amount": 0,
      "currency": "string",
      "description": "string",
      "exchange_rate": 0,
      "transaction_type": "string",
      "client": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      },
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "bank_account": {
        "id": 0,
        "etag": "string",
        "holder": "string",
        "name": "string",
        "institution": "string",
        "domicile_branch": "string",
        "account_number": "string",
        "transit_number": "string",
        "swift": "string",
        "currency": "string",
        "balance": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "type": "Operating",
        "default_account": true,
        "general_ledger_number": "string",
        "bank_transactions_count": 0
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous BankTransaction_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » client Contact_base false No description
    » matter Matter_base false No description
    » bank_account BankAccount_base false No description

    BankTransactionShow

    {
      "data": {
        "id": 0,
        "type": "string",
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "bank_account_id": 0,
        "source": "string",
        "confirmation": "string",
        "date": "2018-03-22",
        "amount": 0,
        "currency": "string",
        "description": "string",
        "exchange_rate": 0,
        "transaction_type": "string",
        "client": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        },
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "bank_account": {
          "id": 0,
          "etag": "string",
          "holder": "string",
          "name": "string",
          "institution": "string",
          "domicile_branch": "string",
          "account_number": "string",
          "transit_number": "string",
          "swift": "string",
          "currency": "string",
          "balance": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "type": "Operating",
          "default_account": true,
          "general_ledger_number": "string",
          "bank_transactions_count": 0
        }
      }
    }
    

    Properties

    Name Type Required Description
    data BankTransaction true No description

    BankTransactionList

    {
      "data": [
        {
          "id": 0,
          "type": "string",
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "bank_account_id": 0,
          "source": "string",
          "confirmation": "string",
          "date": "2018-03-22",
          "amount": 0,
          "currency": "string",
          "description": "string",
          "exchange_rate": 0,
          "transaction_type": "string",
          "client": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          },
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "bank_account": {
            "id": 0,
            "etag": "string",
            "holder": "string",
            "name": "string",
            "institution": "string",
            "domicile_branch": "string",
            "account_number": "string",
            "transit_number": "string",
            "swift": "string",
            "currency": "string",
            "balance": 0,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "type": "Operating",
            "default_account": true,
            "general_ledger_number": "string",
            "bank_transactions_count": 0
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [BankTransaction] true BankTransaction List Response

    Timer_base

    {
      "id": 0,
      "etag": "string",
      "start_time": "2018-03-22T20:30:34Z",
      "elapsed_time": 0
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Timer
    etag string false ETag for the Timer
    start_time string(date-time) false The time the Timer was started (as ISO-8601 timestamp)
    elapsed_time number(double) false How much time has elapsed, in hours, since the timer was started

    Timer

    {
      "id": 0,
      "etag": "string",
      "start_time": "2018-03-22T20:30:34Z",
      "elapsed_time": 0,
      "activity": {
        "id": 0,
        "etag": "string",
        "type": "TimeEntry",
        "date": "2018-03-22",
        "quantity_in_hours": 0,
        "rounded_quantity_in_hours": 0,
        "quantity": 0,
        "rounded_quantity": 0,
        "price": 0,
        "note": "string",
        "flat_rate": true,
        "billed": true,
        "on_bill": true,
        "total": 0,
        "contingency_fee": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Timer_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » activity Activity_base false No description

    TimerShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "start_time": "2018-03-22T20:30:34Z",
        "elapsed_time": 0,
        "activity": {
          "id": 0,
          "etag": "string",
          "type": "TimeEntry",
          "date": "2018-03-22",
          "quantity_in_hours": 0,
          "rounded_quantity_in_hours": 0,
          "quantity": 0,
          "rounded_quantity": 0,
          "price": 0,
          "note": "string",
          "flat_rate": true,
          "billed": true,
          "on_bill": true,
          "total": 0,
          "contingency_fee": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data Timer true No description

    ExternalProperty_base

    {
      "id": 0,
      "name": "string",
      "value": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ExternalProperty
    name string false The name of the ExternalProperty
    value string false The value of the ExternalProperty

    ExternalProperty

    {
      "id": 0,
      "name": "string",
      "value": "string",
      "subject": {
        "id": 0,
        "type": "Task",
        "identifier": "string",
        "secondary_identifier": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ExternalProperty_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » subject PolymorphicObject_base false No description

    Communication_base

    {
      "id": 0,
      "etag": "string",
      "subject": "string",
      "body": "string",
      "type": "EmailCommunication",
      "date": "2018-03-22",
      "time_entries_count": 0,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Communication
    etag string false ETag for the Communication
    subject string false The subject line of the Communication
    body string false The main content of the Communication
    type string false The type of the Communication
    date string(date) false The date of the Communication (as a ISO-8601 datestamp)
    time_entries_count integer(int32) false The number of time_entries associated with the Communication
    created_at string(date-time) false The time the Communication was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Communication was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    type EmailCommunication
    type PhoneCommunication

    Communication

    {
      "id": 0,
      "etag": "string",
      "subject": "string",
      "body": "string",
      "type": "EmailCommunication",
      "date": "2018-03-22",
      "time_entries_count": 0,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "senders": [
        {
          "id": 0,
          "type": "Contact",
          "identifier": "string",
          "secondary_identifier": "string",
          "enabled": true,
          "name": "string"
        }
      ],
      "receivers": [
        {
          "id": 0,
          "type": "Contact",
          "identifier": "string",
          "secondary_identifier": "string",
          "enabled": true,
          "name": "string"
        }
      ],
      "external_properties": [
        {
          "id": 0,
          "name": "string",
          "value": "string"
        }
      ],
      "time_entries": [
        {
          "id": 0,
          "etag": "string",
          "type": "TimeEntry",
          "date": "2018-03-22",
          "quantity_in_hours": 0,
          "rounded_quantity_in_hours": 0,
          "quantity": 0,
          "rounded_quantity": 0,
          "price": 0,
          "note": "string",
          "flat_rate": true,
          "billed": true,
          "on_bill": true,
          "total": 0,
          "contingency_fee": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Communication_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » matter Matter_base false No description
    » senders [Participant_base] false Participant
    » receivers [Participant_base] false Participant
    » external_properties [ExternalProperty_base] false ExternalProperty
    » time_entries [Activity_base] false Activity

    CommunicationShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "subject": "string",
        "body": "string",
        "type": "EmailCommunication",
        "date": "2018-03-22",
        "time_entries_count": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "senders": [
          {
            "id": 0,
            "type": "Contact",
            "identifier": "string",
            "secondary_identifier": "string",
            "enabled": true,
            "name": "string"
          }
        ],
        "receivers": [
          {
            "id": 0,
            "type": "Contact",
            "identifier": "string",
            "secondary_identifier": "string",
            "enabled": true,
            "name": "string"
          }
        ],
        "external_properties": [
          {
            "id": 0,
            "name": "string",
            "value": "string"
          }
        ],
        "time_entries": [
          {
            "id": 0,
            "etag": "string",
            "type": "TimeEntry",
            "date": "2018-03-22",
            "quantity_in_hours": 0,
            "rounded_quantity_in_hours": 0,
            "quantity": 0,
            "rounded_quantity": 0,
            "price": 0,
            "note": "string",
            "flat_rate": true,
            "billed": true,
            "on_bill": true,
            "total": 0,
            "contingency_fee": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data Communication true No description

    CommunicationList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "subject": "string",
          "body": "string",
          "type": "EmailCommunication",
          "date": "2018-03-22",
          "time_entries_count": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "senders": [
            {
              "id": 0,
              "type": "Contact",
              "identifier": "string",
              "secondary_identifier": "string",
              "enabled": true,
              "name": "string"
            }
          ],
          "receivers": [
            {
              "id": 0,
              "type": "Contact",
              "identifier": "string",
              "secondary_identifier": "string",
              "enabled": true,
              "name": "string"
            }
          ],
          "external_properties": [
            {
              "id": 0,
              "name": "string",
              "value": "string"
            }
          ],
          "time_entries": [
            {
              "id": 0,
              "etag": "string",
              "type": "TimeEntry",
              "date": "2018-03-22",
              "quantity_in_hours": 0,
              "rounded_quantity_in_hours": 0,
              "quantity": 0,
              "rounded_quantity": 0,
              "price": 0,
              "note": "string",
              "flat_rate": true,
              "billed": true,
              "on_bill": true,
              "total": 0,
              "contingency_fee": true,
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Communication] true Communication List Response

    Discount_base

    {
      "rate": 0,
      "type": "percentage",
      "note": "string",
      "early_payment_rate": 0,
      "early_payment_period": 0
    }
    

    Properties

    Name Type Required Description
    rate number(double) false The rate of the Discount%
    type string false The type of Discount being applied in your Discount rate.
    note string false A note for your Discount
    early_payment_rate integer(int32) false The % discount that will be applied if your Discount is paid within the early payment period.
    early_payment_period integer(int32) false The number of days for your Discount period. If your bill is paid within this time, apply your Discount rate to the bill.

    Enumerated Values

    Property Value
    type percentage
    type money

    Discount

    {
      "rate": 0,
      "type": "percentage",
      "note": "string",
      "early_payment_rate": 0,
      "early_payment_period": 0
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Discount_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    Activity_base

    {
      "id": 0,
      "etag": "string",
      "type": "TimeEntry",
      "date": "2018-03-22",
      "quantity_in_hours": 0,
      "rounded_quantity_in_hours": 0,
      "quantity": 0,
      "rounded_quantity": 0,
      "price": 0,
      "note": "string",
      "flat_rate": true,
      "billed": true,
      "on_bill": true,
      "total": 0,
      "contingency_fee": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Activity
    etag string false ETag for the Activity
    type string false The type of the Activity
    date string(date) false The date the Activity was performed (as a ISO-8601 date)
    quantity_in_hours number(double) false The number of hours the Activity took.
    rounded_quantity_in_hours number(double) false The number of hours rounded accordingly to the billing settings. The rounded value is used to calculate the total.
    quantity number(double) false The field is applicable to time entries only. Version <= 4.0.3: The number of hours the Activity took. Latest version: The number of seconds the Activity took.
    rounded_quantity number(double) false The field is applicable to time entries only. Version <= 4.0.3: The number of hours rounded accordingly to the billing settings. The rounded value is used to calculate the total. Latest version: The number of seconds rounded accordingly to the billing settings. The rounded value is used to calculate the total.
    price number(double) false The hourly or fixed rate of the Activity
    note string false The details about the Activity
    flat_rate boolean false Whether the Activity is a flat rate
    billed boolean false Whether the Activity has been added to an active bill that is in the state of awaiting_payment or paid
    on_bill boolean false Whether the Activity has been added to an active bill that is in the state of draft, awaiting_approval, awaiting_payment or paid
    total number(double) false The total cost of the Activity
    contingency_fee boolean false Whether or not the Activity is a contingency fee
    created_at string(date-time) false The time the Activity was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Activity was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    type TimeEntry
    type ExpenseEntry

    Activity

    {
      "id": 0,
      "etag": "string",
      "type": "TimeEntry",
      "date": "2018-03-22",
      "quantity_in_hours": 0,
      "rounded_quantity_in_hours": 0,
      "quantity": 0,
      "rounded_quantity": 0,
      "price": 0,
      "note": "string",
      "flat_rate": true,
      "billed": true,
      "on_bill": true,
      "total": 0,
      "contingency_fee": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "activity_description": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "visible_to_co_counsel": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "default": true,
        "type": "string",
        "utbms_activity_id": 0,
        "utbms_task_name": "string",
        "utbms_task_id": 0,
        "accessible_to_user": true
      },
      "bill": {
        "id": 0,
        "etag": "string",
        "number": "string",
        "issued_at": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "due_at": "2018-03-22",
        "tax_rate": 0,
        "secondary_tax_rate": 0,
        "updated_at": "2018-03-22T20:30:34Z",
        "subject": "string",
        "purchase_order": "string",
        "type": "MatterBill",
        "memo": "string",
        "start_at": "2018-03-22",
        "end_at": "2018-03-22",
        "balance": 0,
        "config": "string",
        "state": "draft",
        "kind": "revenue_kind",
        "total": 0,
        "paid": 0,
        "paid_at": "2018-03-22T20:30:34Z",
        "pending": 0,
        "due": 0,
        "can_update": true,
        "credits_issued": 0,
        "client_addresses": "string",
        "shared": true,
        "sub_total": 0,
        "tax_sum": 0,
        "secondary_tax_sum": 0
      },
      "communication": {
        "id": 0,
        "etag": "string",
        "subject": "string",
        "body": "string",
        "type": "EmailCommunication",
        "date": "2018-03-22",
        "time_entries_count": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "subject": {
        "id": 0,
        "type": "Task",
        "identifier": "string",
        "secondary_identifier": "string"
      },
      "timer": {
        "id": 0,
        "etag": "string",
        "start_time": "2018-03-22T20:30:34Z",
        "elapsed_time": 0
      },
      "user": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "utbms_expense": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "code": "string",
        "description": "string",
        "type": "UtbmsTask",
        "utbms_set_id": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Activity_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » activity_description ActivityDescription_base false No description
    » bill Bill_base false No description
    » communication Communication_base false No description
    » matter Matter_base false No description
    » subject PolymorphicObject_base false No description
    » timer Timer_base false No description
    » user User_base false No description
    » utbms_expense UtbmsCode_base false No description

    ActivityShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "type": "TimeEntry",
        "date": "2018-03-22",
        "quantity_in_hours": 0,
        "rounded_quantity_in_hours": 0,
        "quantity": 0,
        "rounded_quantity": 0,
        "price": 0,
        "note": "string",
        "flat_rate": true,
        "billed": true,
        "on_bill": true,
        "total": 0,
        "contingency_fee": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "activity_description": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "visible_to_co_counsel": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "default": true,
          "type": "string",
          "utbms_activity_id": 0,
          "utbms_task_name": "string",
          "utbms_task_id": 0,
          "accessible_to_user": true
        },
        "bill": {
          "id": 0,
          "etag": "string",
          "number": "string",
          "issued_at": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "due_at": "2018-03-22",
          "tax_rate": 0,
          "secondary_tax_rate": 0,
          "updated_at": "2018-03-22T20:30:34Z",
          "subject": "string",
          "purchase_order": "string",
          "type": "MatterBill",
          "memo": "string",
          "start_at": "2018-03-22",
          "end_at": "2018-03-22",
          "balance": 0,
          "config": "string",
          "state": "draft",
          "kind": "revenue_kind",
          "total": 0,
          "paid": 0,
          "paid_at": "2018-03-22T20:30:34Z",
          "pending": 0,
          "due": 0,
          "can_update": true,
          "credits_issued": 0,
          "client_addresses": "string",
          "shared": true,
          "sub_total": 0,
          "tax_sum": 0,
          "secondary_tax_sum": 0
        },
        "communication": {
          "id": 0,
          "etag": "string",
          "subject": "string",
          "body": "string",
          "type": "EmailCommunication",
          "date": "2018-03-22",
          "time_entries_count": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "subject": {
          "id": 0,
          "type": "Task",
          "identifier": "string",
          "secondary_identifier": "string"
        },
        "timer": {
          "id": 0,
          "etag": "string",
          "start_time": "2018-03-22T20:30:34Z",
          "elapsed_time": 0
        },
        "user": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "utbms_expense": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "code": "string",
          "description": "string",
          "type": "UtbmsTask",
          "utbms_set_id": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data Activity true No description

    ActivityList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "type": "TimeEntry",
          "date": "2018-03-22",
          "quantity_in_hours": 0,
          "rounded_quantity_in_hours": 0,
          "quantity": 0,
          "rounded_quantity": 0,
          "price": 0,
          "note": "string",
          "flat_rate": true,
          "billed": true,
          "on_bill": true,
          "total": 0,
          "contingency_fee": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "activity_description": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "visible_to_co_counsel": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "default": true,
            "type": "string",
            "utbms_activity_id": 0,
            "utbms_task_name": "string",
            "utbms_task_id": 0,
            "accessible_to_user": true
          },
          "bill": {
            "id": 0,
            "etag": "string",
            "number": "string",
            "issued_at": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "due_at": "2018-03-22",
            "tax_rate": 0,
            "secondary_tax_rate": 0,
            "updated_at": "2018-03-22T20:30:34Z",
            "subject": "string",
            "purchase_order": "string",
            "type": "MatterBill",
            "memo": "string",
            "start_at": "2018-03-22",
            "end_at": "2018-03-22",
            "balance": 0,
            "config": "string",
            "state": "draft",
            "kind": "revenue_kind",
            "total": 0,
            "paid": 0,
            "paid_at": "2018-03-22T20:30:34Z",
            "pending": 0,
            "due": 0,
            "can_update": true,
            "credits_issued": 0,
            "client_addresses": "string",
            "shared": true,
            "sub_total": 0,
            "tax_sum": 0,
            "secondary_tax_sum": 0
          },
          "communication": {
            "id": 0,
            "etag": "string",
            "subject": "string",
            "body": "string",
            "type": "EmailCommunication",
            "date": "2018-03-22",
            "time_entries_count": 0,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "subject": {
            "id": 0,
            "type": "Task",
            "identifier": "string",
            "secondary_identifier": "string"
          },
          "timer": {
            "id": 0,
            "etag": "string",
            "start_time": "2018-03-22T20:30:34Z",
            "elapsed_time": 0
          },
          "user": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "utbms_expense": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "code": "string",
            "description": "string",
            "type": "UtbmsTask",
            "utbms_set_id": 0,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Activity] true Activity List Response

    Bill_base

    {
      "id": 0,
      "etag": "string",
      "number": "string",
      "issued_at": "2018-03-22",
      "created_at": "2018-03-22T20:30:34Z",
      "due_at": "2018-03-22",
      "tax_rate": 0,
      "secondary_tax_rate": 0,
      "updated_at": "2018-03-22T20:30:34Z",
      "subject": "string",
      "purchase_order": "string",
      "type": "MatterBill",
      "memo": "string",
      "start_at": "2018-03-22",
      "end_at": "2018-03-22",
      "balance": 0,
      "config": "string",
      "state": "draft",
      "kind": "revenue_kind",
      "total": 0,
      "paid": 0,
      "paid_at": "2018-03-22T20:30:34Z",
      "pending": 0,
      "due": 0,
      "can_update": true,
      "credits_issued": 0,
      "client_addresses": "string",
      "shared": true,
      "sub_total": 0,
      "tax_sum": 0,
      "secondary_tax_sum": 0
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Bill
    etag string false ETag for the Bill
    number string false The Bill identifier (not necessarily numeric)'
    issued_at string(date) false The time the Bill was issued (as a ISO-8601 date)
    created_at string(date-time) false The time the Bill was created (as a ISO-8601 timestamp)
    due_at string(date) false The date the Bill is due (as a ISO-8601 date)
    tax_rate number(double) false The tax rate to the Bill
    secondary_tax_rate number(double) false A secondary tax rate applied to the Bill
    updated_at string(date-time) false The time the Bill was last updated (as a ISO-8601 timestamp)
    subject string false The subject of the Bill
    purchase_order string false The purchase order of the Bill
    type string false The type of the Bill
    memo string false A memo for the Bill
    start_at string(date) false The time the billing period starts (as a ISO-8601 date)
    end_at string(date) false The time the billing period ends (as a ISO-8601 date)
    balance number(double) false The outstanding balance of the Bill
    config string false A string containing bill theme settings for the Bill preview that are specific to this Bill. To learn more about this field, refer to the bill themes documentation. Values in this string will override the bill theme settings when displaying this Bill. Any values not present in this string will default to using the settings present in the bill theme for this Bill, or to the default settings for those values if it is also undefined in the bill theme.
    state string false The current state of the Bill
    kind string false The kind of the Bill
    total number(double) false The total with interest of the Bill
    paid number(double) false The total amount paid for the Bill
    paid_at string(date-time) false The date of the last payment on the Bill
    pending number(double) false The amount of pending credit card payments on the Bill
    due number(double) false The total amount of the Bill with interest and less discounts
    can_update boolean false This value indicates if your Bill's line items and information can be updated.
    credits_issued number(double) false The total credits issued for the Bill
    client_addresses string false The available client addresses for the user
    shared boolean false Whether the Bill is a shared
    sub_total number(double) false Sub total for the Bill
    tax_sum number(double) false Sum of primary tax for the model
    secondary_tax_sum number(double) false Sum of secondary tax for the model

    Enumerated Values

    Property Value
    type MatterBill
    type ClientBill
    state draft
    state awaiting_approval
    state awaiting_payment
    state paid
    state void
    state deleted
    kind revenue_kind
    kind summary_kind
    kind trust_kind
    kind aggregate_all
    kind aggregate_split
    kind aggregate_services
    kind aggregate_expenses

    Bill

    {
      "id": 0,
      "etag": "string",
      "number": "string",
      "issued_at": "2018-03-22",
      "created_at": "2018-03-22T20:30:34Z",
      "due_at": "2018-03-22",
      "tax_rate": 0,
      "secondary_tax_rate": 0,
      "updated_at": "2018-03-22T20:30:34Z",
      "subject": "string",
      "purchase_order": "string",
      "type": "MatterBill",
      "memo": "string",
      "start_at": "2018-03-22",
      "end_at": "2018-03-22",
      "balance": 0,
      "config": "string",
      "state": "draft",
      "kind": "revenue_kind",
      "total": 0,
      "paid": 0,
      "paid_at": "2018-03-22T20:30:34Z",
      "pending": 0,
      "due": 0,
      "can_update": true,
      "credits_issued": 0,
      "client_addresses": "string",
      "shared": true,
      "sub_total": 0,
      "tax_sum": 0,
      "secondary_tax_sum": 0,
      "user": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "client": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      },
      "discount": {
        "rate": 0,
        "type": "percentage",
        "note": "string",
        "early_payment_rate": 0,
        "early_payment_period": 0
      },
      "interest": {
        "rate": 0,
        "type": "simple",
        "period": 0,
        "balance": 0,
        "total": 0
      },
      "matters": [
        {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        }
      ],
      "group": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "type": "UserGroup"
      },
      "bill_theme": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "account_id": 0,
        "default": true,
        "name": "string",
        "config": "string"
      },
      "original_bill": {
        "id": 0,
        "etag": "string",
        "number": "string",
        "issued_at": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "due_at": "2018-03-22",
        "tax_rate": 0,
        "secondary_tax_rate": 0,
        "updated_at": "2018-03-22T20:30:34Z",
        "subject": "string",
        "purchase_order": "string",
        "type": "MatterBill",
        "memo": "string",
        "start_at": "2018-03-22",
        "end_at": "2018-03-22",
        "balance": 0,
        "config": "string",
        "state": "draft",
        "kind": "revenue_kind",
        "total": 0,
        "paid": 0,
        "paid_at": "2018-03-22T20:30:34Z",
        "pending": 0,
        "due": 0,
        "can_update": true,
        "credits_issued": 0,
        "client_addresses": "string",
        "shared": true,
        "sub_total": 0,
        "tax_sum": 0,
        "secondary_tax_sum": 0
      },
      "destination_account": {
        "id": 0,
        "etag": "string",
        "holder": "string",
        "name": "string",
        "institution": "string",
        "domicile_branch": "string",
        "account_number": "string",
        "transit_number": "string",
        "swift": "string",
        "currency": "string",
        "balance": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "type": "Operating",
        "default_account": true,
        "general_ledger_number": "string",
        "bank_transactions_count": 0
      },
      "balances": [
        {
          "id": 0,
          "amount": 0,
          "type": "Matter",
          "interest_amount": 0,
          "due": 0
        }
      ],
      "matter_totals": [
        {
          "id": 0,
          "amount": 0
        }
      ],
      "currency": {
        "id": 0,
        "etag": "string",
        "code": "string",
        "sign": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "billing_setting": {
        "etag": "string",
        "rounded_duration": 0,
        "rounding": 0,
        "use_decimal_rounding": true,
        "currency": "string",
        "currency_sign": "string",
        "tax_rate": 0,
        "tax_name": "string",
        "use_secondary_tax": true,
        "secondary_tax_rate": 0,
        "secondary_tax_rule": "Pre",
        "secondary_tax_name": "string",
        "notify_after_bill_created": true
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Bill_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » user User_base false No description
    » client Contact_base false No description
    » discount Discount_base false No description
    » interest Interest_base false No description
    » matters [Matter_base] false Matter
    » group Group_base false No description
    » bill_theme BillTheme_base false No description
    » original_bill Bill_base false No description
    » destination_account BankAccount_base false No description
    » balances [Balance_base] false Balance
    » matter_totals [MatterBalance_base] false MatterBalance
    » currency Currency_base false No description
    » billing_setting BillingSetting_base false No description

    BillShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "number": "string",
        "issued_at": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "due_at": "2018-03-22",
        "tax_rate": 0,
        "secondary_tax_rate": 0,
        "updated_at": "2018-03-22T20:30:34Z",
        "subject": "string",
        "purchase_order": "string",
        "type": "MatterBill",
        "memo": "string",
        "start_at": "2018-03-22",
        "end_at": "2018-03-22",
        "balance": 0,
        "config": "string",
        "state": "draft",
        "kind": "revenue_kind",
        "total": 0,
        "paid": 0,
        "paid_at": "2018-03-22T20:30:34Z",
        "pending": 0,
        "due": 0,
        "can_update": true,
        "credits_issued": 0,
        "client_addresses": "string",
        "shared": true,
        "sub_total": 0,
        "tax_sum": 0,
        "secondary_tax_sum": 0,
        "user": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "client": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        },
        "discount": {
          "rate": 0,
          "type": "percentage",
          "note": "string",
          "early_payment_rate": 0,
          "early_payment_period": 0
        },
        "interest": {
          "rate": 0,
          "type": "simple",
          "period": 0,
          "balance": 0,
          "total": 0
        },
        "matters": [
          {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          }
        ],
        "group": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "type": "UserGroup"
        },
        "bill_theme": {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "account_id": 0,
          "default": true,
          "name": "string",
          "config": "string"
        },
        "original_bill": {
          "id": 0,
          "etag": "string",
          "number": "string",
          "issued_at": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "due_at": "2018-03-22",
          "tax_rate": 0,
          "secondary_tax_rate": 0,
          "updated_at": "2018-03-22T20:30:34Z",
          "subject": "string",
          "purchase_order": "string",
          "type": "MatterBill",
          "memo": "string",
          "start_at": "2018-03-22",
          "end_at": "2018-03-22",
          "balance": 0,
          "config": "string",
          "state": "draft",
          "kind": "revenue_kind",
          "total": 0,
          "paid": 0,
          "paid_at": "2018-03-22T20:30:34Z",
          "pending": 0,
          "due": 0,
          "can_update": true,
          "credits_issued": 0,
          "client_addresses": "string",
          "shared": true,
          "sub_total": 0,
          "tax_sum": 0,
          "secondary_tax_sum": 0
        },
        "destination_account": {
          "id": 0,
          "etag": "string",
          "holder": "string",
          "name": "string",
          "institution": "string",
          "domicile_branch": "string",
          "account_number": "string",
          "transit_number": "string",
          "swift": "string",
          "currency": "string",
          "balance": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "type": "Operating",
          "default_account": true,
          "general_ledger_number": "string",
          "bank_transactions_count": 0
        },
        "balances": [
          {
            "id": 0,
            "amount": 0,
            "type": "Matter",
            "interest_amount": 0,
            "due": 0
          }
        ],
        "matter_totals": [
          {
            "id": 0,
            "amount": 0
          }
        ],
        "currency": {
          "id": 0,
          "etag": "string",
          "code": "string",
          "sign": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "billing_setting": {
          "etag": "string",
          "rounded_duration": 0,
          "rounding": 0,
          "use_decimal_rounding": true,
          "currency": "string",
          "currency_sign": "string",
          "tax_rate": 0,
          "tax_name": "string",
          "use_secondary_tax": true,
          "secondary_tax_rate": 0,
          "secondary_tax_rule": "Pre",
          "secondary_tax_name": "string",
          "notify_after_bill_created": true
        }
      }
    }
    

    Properties

    Name Type Required Description
    data Bill true No description

    BillList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "number": "string",
          "issued_at": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "due_at": "2018-03-22",
          "tax_rate": 0,
          "secondary_tax_rate": 0,
          "updated_at": "2018-03-22T20:30:34Z",
          "subject": "string",
          "purchase_order": "string",
          "type": "MatterBill",
          "memo": "string",
          "start_at": "2018-03-22",
          "end_at": "2018-03-22",
          "balance": 0,
          "config": "string",
          "state": "draft",
          "kind": "revenue_kind",
          "total": 0,
          "paid": 0,
          "paid_at": "2018-03-22T20:30:34Z",
          "pending": 0,
          "due": 0,
          "can_update": true,
          "credits_issued": 0,
          "client_addresses": "string",
          "shared": true,
          "sub_total": 0,
          "tax_sum": 0,
          "secondary_tax_sum": 0,
          "user": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "client": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          },
          "discount": {
            "rate": 0,
            "type": "percentage",
            "note": "string",
            "early_payment_rate": 0,
            "early_payment_period": 0
          },
          "interest": {
            "rate": 0,
            "type": "simple",
            "period": 0,
            "balance": 0,
            "total": 0
          },
          "matters": [
            {
              "id": 0,
              "etag": "string",
              "number": 0,
              "display_number": "string",
              "custom_number": "string",
              "description": "string",
              "status": "Pending",
              "location": "string",
              "client_reference": "string",
              "billable": true,
              "maildrop_address": "string",
              "billing_method": "flat",
              "open_date": "2018-03-22",
              "close_date": "2018-03-22",
              "pending_date": "2018-03-22",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z",
              "shared": true
            }
          ],
          "group": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "type": "UserGroup"
          },
          "bill_theme": {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "account_id": 0,
            "default": true,
            "name": "string",
            "config": "string"
          },
          "original_bill": {
            "id": 0,
            "etag": "string",
            "number": "string",
            "issued_at": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "due_at": "2018-03-22",
            "tax_rate": 0,
            "secondary_tax_rate": 0,
            "updated_at": "2018-03-22T20:30:34Z",
            "subject": "string",
            "purchase_order": "string",
            "type": "MatterBill",
            "memo": "string",
            "start_at": "2018-03-22",
            "end_at": "2018-03-22",
            "balance": 0,
            "config": "string",
            "state": "draft",
            "kind": "revenue_kind",
            "total": 0,
            "paid": 0,
            "paid_at": "2018-03-22T20:30:34Z",
            "pending": 0,
            "due": 0,
            "can_update": true,
            "credits_issued": 0,
            "client_addresses": "string",
            "shared": true,
            "sub_total": 0,
            "tax_sum": 0,
            "secondary_tax_sum": 0
          },
          "destination_account": {
            "id": 0,
            "etag": "string",
            "holder": "string",
            "name": "string",
            "institution": "string",
            "domicile_branch": "string",
            "account_number": "string",
            "transit_number": "string",
            "swift": "string",
            "currency": "string",
            "balance": 0,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "type": "Operating",
            "default_account": true,
            "general_ledger_number": "string",
            "bank_transactions_count": 0
          },
          "balances": [
            {
              "id": 0,
              "amount": 0,
              "type": "Matter",
              "interest_amount": 0,
              "due": 0
            }
          ],
          "matter_totals": [
            {
              "id": 0,
              "amount": 0
            }
          ],
          "currency": {
            "id": 0,
            "etag": "string",
            "code": "string",
            "sign": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "billing_setting": {
            "etag": "string",
            "rounded_duration": 0,
            "rounding": 0,
            "use_decimal_rounding": true,
            "currency": "string",
            "currency_sign": "string",
            "tax_rate": 0,
            "tax_name": "string",
            "use_secondary_tax": true,
            "secondary_tax_rate": 0,
            "secondary_tax_rule": "Pre",
            "secondary_tax_name": "string",
            "notify_after_bill_created": true
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Bill] true Bill List Response

    Interest_base

    {
      "rate": 0,
      "type": "simple",
      "period": 0,
      "balance": 0,
      "total": 0
    }
    

    Properties

    Name Type Required Description
    rate number(double) false Rate for the Interest%
    type string false Type of Interest% being applied
    period integer(int32) false Number of days that represent the frequency which your Interest% will be applied
    balance number(double) false Interest balance for the object
    total number(double) false Interest total for the object

    Enumerated Values

    Property Value
    type simple
    type compound

    Interest

    {
      "rate": 0,
      "type": "simple",
      "period": 0,
      "balance": 0,
      "total": 0
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Interest_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    BillTheme_base

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "account_id": 0,
      "default": true,
      "name": "string",
      "config": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the BillTheme
    etag string false ETag for the BillTheme
    created_at string(date-time) false The time the BillTheme was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the BillTheme was last updated (as a ISO-8601 timestamp)
    account_id integer(int32) false The account number the BillTheme belongs to
    default boolean false Whether the BillTheme is the default for its account
    name string false The name of the BillTheme
    config string false The configuration of the BillTheme

    BillTheme

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "account_id": 0,
      "default": true,
      "name": "string",
      "config": "string"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous BillTheme_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    BillThemeShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "account_id": 0,
        "default": true,
        "name": "string",
        "config": "string"
      }
    }
    

    Properties

    Name Type Required Description
    data BillTheme true No description

    BillThemeList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "account_id": 0,
          "default": true,
          "name": "string",
          "config": "string"
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [BillTheme] true BillTheme List Response

    BankAccount_base

    {
      "id": 0,
      "etag": "string",
      "holder": "string",
      "name": "string",
      "institution": "string",
      "domicile_branch": "string",
      "account_number": "string",
      "transit_number": "string",
      "swift": "string",
      "currency": "string",
      "balance": 0,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "type": "Operating",
      "default_account": true,
      "general_ledger_number": "string",
      "bank_transactions_count": 0
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the BankAccount
    etag string false ETag for the BankAccount
    holder string false The name of the person or business that owns the BankAccount
    name string false The name of the BankAccount
    institution string false The financial institution where the BankAccount is registered
    domicile_branch string false The name of the branch where the account was opened
    account_number string false The account number for BankAccount
    transit_number string false Transit number for the bank account branch
    swift string false A unique identification code for the financial institution
    currency string false The currency type of the BankAccount
    balance number(double) false The current balance of the BankAccount
    created_at string(date-time) false The time the BankAccount was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the BankAccount was last updated (as a ISO-8601 timestamp)
    type string false The type of the BankAccount
    default_account boolean false Whether it is the default account
    general_ledger_number string false General ledger number
    bank_transactions_count integer(int32) false The number of bank transactions associated with the account.

    Enumerated Values

    Property Value
    type Operating
    type Trust

    BankAccount

    {
      "id": 0,
      "etag": "string",
      "holder": "string",
      "name": "string",
      "institution": "string",
      "domicile_branch": "string",
      "account_number": "string",
      "transit_number": "string",
      "swift": "string",
      "currency": "string",
      "balance": 0,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "type": "Operating",
      "default_account": true,
      "general_ledger_number": "string",
      "bank_transactions_count": 0,
      "user": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "clio_payments_merchant_account_mapping": {
        "id": 0,
        "etag": "string",
        "merchant_account_id": 0,
        "merchant_account_name": "string",
        "is_cvv_required": true,
        "required_fields": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous BankAccount_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » user User_base false No description
    » clio_payments_merchant_account_mapping ClioPaymentsMerchantAccountMapping_base false No description

    BankAccountShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "holder": "string",
        "name": "string",
        "institution": "string",
        "domicile_branch": "string",
        "account_number": "string",
        "transit_number": "string",
        "swift": "string",
        "currency": "string",
        "balance": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "type": "Operating",
        "default_account": true,
        "general_ledger_number": "string",
        "bank_transactions_count": 0,
        "user": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "clio_payments_merchant_account_mapping": {
          "id": 0,
          "etag": "string",
          "merchant_account_id": 0,
          "merchant_account_name": "string",
          "is_cvv_required": true,
          "required_fields": "string"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data BankAccount true No description

    BankAccountList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "holder": "string",
          "name": "string",
          "institution": "string",
          "domicile_branch": "string",
          "account_number": "string",
          "transit_number": "string",
          "swift": "string",
          "currency": "string",
          "balance": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "type": "Operating",
          "default_account": true,
          "general_ledger_number": "string",
          "bank_transactions_count": 0,
          "user": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "clio_payments_merchant_account_mapping": {
            "id": 0,
            "etag": "string",
            "merchant_account_id": 0,
            "merchant_account_name": "string",
            "is_cvv_required": true,
            "required_fields": "string"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [BankAccount] true BankAccount List Response

    ClioPaymentsMerchantAccountMapping_base

    {
      "id": 0,
      "etag": "string",
      "merchant_account_id": 0,
      "merchant_account_name": "string",
      "is_cvv_required": true,
      "required_fields": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ClioPaymentsMerchantAccountMapping
    etag string false ETag for the ClioPaymentsMerchantAccountMapping
    merchant_account_id integer(int32) false The ID of the merchant account.
    merchant_account_name string false The name of the Clio Payments merchant account.
    is_cvv_required boolean false Whether or not the CVV is required by the merchant account.
    required_fields string false The fields required by the merchant account.

    ClioPaymentsMerchantAccountMapping

    {
      "id": 0,
      "etag": "string",
      "merchant_account_id": 0,
      "merchant_account_name": "string",
      "is_cvv_required": true,
      "required_fields": "string"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ClioPaymentsMerchantAccountMapping_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    MatterBalance_base

    {
      "id": 0,
      "amount": 0
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the MatterBalance
    amount number(double) false The amount of balance of a matter.

    MatterBalance

    {
      "id": 0,
      "amount": 0
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous MatterBalance_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    Balance_base

    {
      "id": 0,
      "amount": 0,
      "type": "Matter",
      "interest_amount": 0,
      "due": 0
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Balance
    amount number(double) false The amount for this Balance.
    type string false The type of Balance this data is for.
    interest_amount number(double) false The interest amount for this Balance.
    due number(double) false The amount due for this Balance, factoring in applicable discounts.

    Enumerated Values

    Property Value
    type Matter
    type Client

    Balance

    {
      "id": 0,
      "amount": 0,
      "type": "Matter",
      "interest_amount": 0,
      "due": 0
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Balance_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    Currency_base

    {
      "id": 0,
      "etag": "string",
      "code": "string",
      "sign": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Currency
    etag string false ETag for the Currency
    code string false ISO 4217 code for the Currency
    sign string false Symbol used to denote monetary values using this Currency
    created_at string(date-time) false The time the Currency was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Currency was last updated (as a ISO-8601 timestamp)

    Currency

    {
      "id": 0,
      "etag": "string",
      "code": "string",
      "sign": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Currency_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    CurrencyList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "code": "string",
          "sign": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Currency] true Currency List Response

    BillingSetting_base

    {
      "etag": "string",
      "rounded_duration": 0,
      "rounding": 0,
      "use_decimal_rounding": true,
      "currency": "string",
      "currency_sign": "string",
      "tax_rate": 0,
      "tax_name": "string",
      "use_secondary_tax": true,
      "secondary_tax_rate": 0,
      "secondary_tax_rule": "Pre",
      "secondary_tax_name": "string",
      "notify_after_bill_created": true
    }
    

    Properties

    Name Type Required Description
    etag string false ETag for the BillingSetting
    rounded_duration number(float) false Rounded equivalent of duration submitted
    rounding integer(int32) false Minute increment for time rounding
    use_decimal_rounding boolean false Round time to two decimal places
    currency string false Current user setting of currency
    currency_sign string false The sign of the current currency
    tax_rate number(double) false Rate applied for primary tax on invoices using this BillingSetting
    tax_name string false Name shown for primary tax on invoices using this BillingSetting
    use_secondary_tax boolean false Used to determine if secondary tax applies to invoices using this BillingSetting
    secondary_tax_rate number(double) false Rate applied for secondary tax on invoices using this BillingSetting
    secondary_tax_rule string false Used to determine if secondary tax should be applied seperatly or addtional to primary tax
    secondary_tax_name string false Name shown for secondary tax on invoices using this BillingSetting
    notify_after_bill_created boolean false Flag to indicate if users should have the option to notify other users when generating a bill

    Enumerated Values

    Property Value
    secondary_tax_rule Pre
    secondary_tax_rule Post

    BillingSetting

    {
      "etag": "string",
      "rounded_duration": 0,
      "rounding": 0,
      "use_decimal_rounding": true,
      "currency": "string",
      "currency_sign": "string",
      "tax_rate": 0,
      "tax_name": "string",
      "use_secondary_tax": true,
      "secondary_tax_rate": 0,
      "secondary_tax_rule": "Pre",
      "secondary_tax_name": "string",
      "notify_after_bill_created": true
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous BillingSetting_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    BillingSettingShow

    {
      "data": {
        "etag": "string",
        "rounded_duration": 0,
        "rounding": 0,
        "use_decimal_rounding": true,
        "currency": "string",
        "currency_sign": "string",
        "tax_rate": 0,
        "tax_name": "string",
        "use_secondary_tax": true,
        "secondary_tax_rate": 0,
        "secondary_tax_rule": "Pre",
        "secondary_tax_name": "string",
        "notify_after_bill_created": true
      }
    }
    

    Properties

    Name Type Required Description
    data BillingSetting true No description

    Allocation_base

    {
      "id": 0,
      "etag": "string",
      "date": "2018-03-22",
      "amount": 0,
      "interest": true,
      "voided_at": "2018-03-22T20:30:34Z",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "description": "string",
      "source_bank_account": "string",
      "has_online_payment": true,
      "destroyable": true
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Allocation
    etag string false ETag for the Allocation
    date string(date) false The date the allocation was applied (as a ISO-8601 date)
    amount number(double) false The total amount of money that the user has allocated
    interest boolean false Whether the allocation is applied to interest amount
    voided_at string(date-time) false Time the Allocation was voided (as a ISO-8601 timestamp)
    created_at string(date-time) false The time the Allocation was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Allocation was last updated (as a ISO-8601 timestamp)
    description string false The description from the associated Credit Memo (if applicable)
    source_bank_account string false The bank account from which funds originated
    has_online_payment boolean false Whether this allocation is associated with an online payment or not
    destroyable boolean false Whether the record can be deleted or not

    Allocation

    {
      "id": 0,
      "etag": "string",
      "date": "2018-03-22",
      "amount": 0,
      "interest": true,
      "voided_at": "2018-03-22T20:30:34Z",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "description": "string",
      "source_bank_account": "string",
      "has_online_payment": true,
      "destroyable": true,
      "bill": {
        "id": 0,
        "etag": "string",
        "number": "string",
        "issued_at": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "due_at": "2018-03-22",
        "tax_rate": 0,
        "secondary_tax_rate": 0,
        "updated_at": "2018-03-22T20:30:34Z",
        "subject": "string",
        "purchase_order": "string",
        "type": "MatterBill",
        "memo": "string",
        "start_at": "2018-03-22",
        "end_at": "2018-03-22",
        "balance": 0,
        "config": "string",
        "state": "draft",
        "kind": "revenue_kind",
        "total": 0,
        "paid": 0,
        "paid_at": "2018-03-22T20:30:34Z",
        "pending": 0,
        "due": 0,
        "can_update": true,
        "credits_issued": 0,
        "client_addresses": "string",
        "shared": true,
        "sub_total": 0,
        "tax_sum": 0,
        "secondary_tax_sum": 0
      },
      "destination_bank_account": {
        "id": 0,
        "etag": "string",
        "holder": "string",
        "name": "string",
        "institution": "string",
        "domicile_branch": "string",
        "account_number": "string",
        "transit_number": "string",
        "swift": "string",
        "currency": "string",
        "balance": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "type": "Operating",
        "default_account": true,
        "general_ledger_number": "string",
        "bank_transactions_count": 0
      },
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "contact": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      },
      "parent": {
        "id": 0,
        "type": "Task",
        "identifier": "string",
        "secondary_identifier": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Allocation_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » bill Bill_base false No description
    » destination_bank_account BankAccount_base false No description
    » matter Matter_base false No description
    » contact Contact_base false No description
    » parent PolymorphicObject_base false No description

    AllocationShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "date": "2018-03-22",
        "amount": 0,
        "interest": true,
        "voided_at": "2018-03-22T20:30:34Z",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "description": "string",
        "source_bank_account": "string",
        "has_online_payment": true,
        "destroyable": true,
        "bill": {
          "id": 0,
          "etag": "string",
          "number": "string",
          "issued_at": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "due_at": "2018-03-22",
          "tax_rate": 0,
          "secondary_tax_rate": 0,
          "updated_at": "2018-03-22T20:30:34Z",
          "subject": "string",
          "purchase_order": "string",
          "type": "MatterBill",
          "memo": "string",
          "start_at": "2018-03-22",
          "end_at": "2018-03-22",
          "balance": 0,
          "config": "string",
          "state": "draft",
          "kind": "revenue_kind",
          "total": 0,
          "paid": 0,
          "paid_at": "2018-03-22T20:30:34Z",
          "pending": 0,
          "due": 0,
          "can_update": true,
          "credits_issued": 0,
          "client_addresses": "string",
          "shared": true,
          "sub_total": 0,
          "tax_sum": 0,
          "secondary_tax_sum": 0
        },
        "destination_bank_account": {
          "id": 0,
          "etag": "string",
          "holder": "string",
          "name": "string",
          "institution": "string",
          "domicile_branch": "string",
          "account_number": "string",
          "transit_number": "string",
          "swift": "string",
          "currency": "string",
          "balance": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "type": "Operating",
          "default_account": true,
          "general_ledger_number": "string",
          "bank_transactions_count": 0
        },
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "contact": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        },
        "parent": {
          "id": 0,
          "type": "Task",
          "identifier": "string",
          "secondary_identifier": "string"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data Allocation true No description

    AllocationList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "date": "2018-03-22",
          "amount": 0,
          "interest": true,
          "voided_at": "2018-03-22T20:30:34Z",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "description": "string",
          "source_bank_account": "string",
          "has_online_payment": true,
          "destroyable": true,
          "bill": {
            "id": 0,
            "etag": "string",
            "number": "string",
            "issued_at": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "due_at": "2018-03-22",
            "tax_rate": 0,
            "secondary_tax_rate": 0,
            "updated_at": "2018-03-22T20:30:34Z",
            "subject": "string",
            "purchase_order": "string",
            "type": "MatterBill",
            "memo": "string",
            "start_at": "2018-03-22",
            "end_at": "2018-03-22",
            "balance": 0,
            "config": "string",
            "state": "draft",
            "kind": "revenue_kind",
            "total": 0,
            "paid": 0,
            "paid_at": "2018-03-22T20:30:34Z",
            "pending": 0,
            "due": 0,
            "can_update": true,
            "credits_issued": 0,
            "client_addresses": "string",
            "shared": true,
            "sub_total": 0,
            "tax_sum": 0,
            "secondary_tax_sum": 0
          },
          "destination_bank_account": {
            "id": 0,
            "etag": "string",
            "holder": "string",
            "name": "string",
            "institution": "string",
            "domicile_branch": "string",
            "account_number": "string",
            "transit_number": "string",
            "swift": "string",
            "currency": "string",
            "balance": 0,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "type": "Operating",
            "default_account": true,
            "general_ledger_number": "string",
            "bank_transactions_count": 0
          },
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "contact": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          },
          "parent": {
            "id": 0,
            "type": "Task",
            "identifier": "string",
            "secondary_identifier": "string"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Allocation] true Allocation List Response

    BankTransfer_base

    {
      "id": 0,
      "etag": "string",
      "amount": 0,
      "date": "2018-03-22T20:30:34Z",
      "description": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the BankTransfer
    etag string false ETag for the BankTransfer
    amount number(double) false The amount of the transfer.
    date string(date-time) false The date of the transfer.
    description string false The description of the transfer.

    BankTransfer

    {
      "id": 0,
      "etag": "string",
      "amount": 0,
      "date": "2018-03-22T20:30:34Z",
      "description": "string",
      "client": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      },
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "source_account": {
        "id": 0,
        "etag": "string",
        "holder": "string",
        "name": "string",
        "institution": "string",
        "domicile_branch": "string",
        "account_number": "string",
        "transit_number": "string",
        "swift": "string",
        "currency": "string",
        "balance": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "type": "Operating",
        "default_account": true,
        "general_ledger_number": "string",
        "bank_transactions_count": 0
      },
      "destination_account": {
        "id": 0,
        "etag": "string",
        "holder": "string",
        "name": "string",
        "institution": "string",
        "domicile_branch": "string",
        "account_number": "string",
        "transit_number": "string",
        "swift": "string",
        "currency": "string",
        "balance": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "type": "Operating",
        "default_account": true,
        "general_ledger_number": "string",
        "bank_transactions_count": 0
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous BankTransfer_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » client Contact_base false No description
    » matter Matter_base false No description
    » source_account BankAccount_base false No description
    » destination_account BankAccount_base false No description

    BankTransferShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "amount": 0,
        "date": "2018-03-22T20:30:34Z",
        "description": "string",
        "client": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        },
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "source_account": {
          "id": 0,
          "etag": "string",
          "holder": "string",
          "name": "string",
          "institution": "string",
          "domicile_branch": "string",
          "account_number": "string",
          "transit_number": "string",
          "swift": "string",
          "currency": "string",
          "balance": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "type": "Operating",
          "default_account": true,
          "general_ledger_number": "string",
          "bank_transactions_count": 0
        },
        "destination_account": {
          "id": 0,
          "etag": "string",
          "holder": "string",
          "name": "string",
          "institution": "string",
          "domicile_branch": "string",
          "account_number": "string",
          "transit_number": "string",
          "swift": "string",
          "currency": "string",
          "balance": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "type": "Operating",
          "default_account": true,
          "general_ledger_number": "string",
          "bank_transactions_count": 0
        }
      }
    }
    

    Properties

    Name Type Required Description
    data BankTransfer true No description

    BillableClient_base

    {
      "id": 0,
      "unbilled_hours": 0,
      "unbilled_amount": 0,
      "amount_in_trust": 0,
      "name": "string",
      "billable_matters_count": 0
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the BillableClient
    unbilled_hours number(double) false The unbilled hours of the client
    unbilled_amount number(double) false The unbilled amount of the client
    amount_in_trust number(double) false The trust amount available for the client
    name string false The name of the Client
    billable_matters_count integer(int32) false The total number of billable matters the client has

    BillableClient

    {
      "id": 0,
      "unbilled_hours": 0,
      "unbilled_amount": 0,
      "amount_in_trust": 0,
      "name": "string",
      "billable_matters_count": 0,
      "billable_matters": [
        {
          "id": 0,
          "unbilled_hours": 0,
          "unbilled_amount": 0,
          "amount_in_trust": 0,
          "display_number": "string"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous BillableClient_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » billable_matters [BillableMatter_base] false BillableMatter

    BillableClientList

    {
      "data": [
        {
          "id": 0,
          "unbilled_hours": 0,
          "unbilled_amount": 0,
          "amount_in_trust": 0,
          "name": "string",
          "billable_matters_count": 0,
          "billable_matters": [
            {
              "id": 0,
              "unbilled_hours": 0,
              "unbilled_amount": 0,
              "amount_in_trust": 0,
              "display_number": "string"
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [BillableClient] true BillableClient List Response

    BillableMatter_base

    {
      "id": 0,
      "unbilled_hours": 0,
      "unbilled_amount": 0,
      "amount_in_trust": 0,
      "display_number": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the BillableMatter
    unbilled_hours number(double) false The unbilled number of hours for the matter
    unbilled_amount number(double) false The unbilled amount for the matter
    amount_in_trust number(double) false The trust amount available for the matter
    display_number string false The reference to the matter

    BillableMatter

    {
      "id": 0,
      "unbilled_hours": 0,
      "unbilled_amount": 0,
      "amount_in_trust": 0,
      "display_number": "string",
      "client": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous BillableMatter_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » client Contact_base false No description

    BillableMatterShow

    {
      "data": {
        "id": 0,
        "unbilled_hours": 0,
        "unbilled_amount": 0,
        "amount_in_trust": 0,
        "display_number": "string",
        "client": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data BillableMatter true No description

    BillableMatterList

    {
      "data": [
        {
          "id": 0,
          "unbilled_hours": 0,
          "unbilled_amount": 0,
          "amount_in_trust": 0,
          "display_number": "string",
          "client": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [BillableMatter] true BillableMatter List Response

    Jurisdiction_base

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "system_id": 0,
      "description": "string",
      "default": true
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Jurisdiction
    etag string false ETag for the Jurisdiction
    created_at string(date-time) false The time the Jurisdiction was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Jurisdiction was last updated (as a ISO-8601 timestamp)
    system_id integer(int32) false Server ID
    description string false Description
    default boolean false Whether the Jurisdiction is default for the current user

    Jurisdiction

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "system_id": 0,
      "description": "string",
      "default": true
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Jurisdiction_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    JurisdictionShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "system_id": 0,
        "description": "string",
        "default": true
      }
    }
    

    Properties

    Name Type Required Description
    data Jurisdiction true No description

    JurisdictionList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "system_id": 0,
          "description": "string",
          "default": true
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Jurisdiction] true Jurisdiction List Response

    JurisdictionsToTrigger_base

    {
      "id": 0,
      "etag": "string",
      "system_id": 0,
      "description": "string",
      "do_not_recalculate": true,
      "is_served": true,
      "is_requirements_required": true
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the JurisdictionsToTrigger
    etag string false ETag for the JurisdictionsToTrigger
    system_id integer(int32) false Server id
    description string false A detailed description of the JurisdictionsToTrigger
    do_not_recalculate boolean false Whether the associated dates should not be recalculated
    is_served boolean false Whether the user must select a Date Offset (Service Type)
    is_requirements_required boolean false Whether the trigger has requirements

    JurisdictionsToTrigger

    {
      "id": 0,
      "etag": "string",
      "system_id": 0,
      "description": "string",
      "do_not_recalculate": true,
      "is_served": true,
      "is_requirements_required": true
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous JurisdictionsToTrigger_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    JurisdictionsToTriggerShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "system_id": 0,
        "description": "string",
        "do_not_recalculate": true,
        "is_served": true,
        "is_requirements_required": true
      }
    }
    

    Properties

    Name Type Required Description
    data JurisdictionsToTrigger true No description

    JurisdictionsToTriggerList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "system_id": 0,
          "description": "string",
          "do_not_recalculate": true,
          "is_served": true,
          "is_requirements_required": true
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [JurisdictionsToTrigger] true JurisdictionsToTrigger List Response

    ClioPaymentsCard_base

    {
      "id": 0,
      "user_id": 0,
      "contact_id": 0,
      "number": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "card_type": 0,
      "account_id": 0
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ClioPaymentsCard
    user_id integer(int32) false The unique identifier for the user of the ClioPaymentsCard.
    contact_id integer(int32) false The unique identifier for the contact of the ClioPaymentsCard.
    number string false The last four digits of the ClioPaymentsCard.
    created_at string(date-time) false The time the ClioPaymentsCard was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the ClioPaymentsCard was last updated (as a ISO-8601 timestamp)
    card_type integer(int32) false The type of the ClioPaymentsCard.
    account_id integer(int32) false Identifier for the Clio account associated with the ClioPaymentsCard.

    Enumerated Values

    Property Value
    card_type 0
    card_type 1
    card_type 2
    card_type 3
    card_type 4
    card_type 5
    card_type 6

    ClioPaymentsCard

    {
      "id": 0,
      "user_id": 0,
      "contact_id": 0,
      "number": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "card_type": 0,
      "account_id": 0
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ClioPaymentsCard_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    ClioPaymentsCardShow

    {
      "data": {
        "id": 0,
        "user_id": 0,
        "contact_id": 0,
        "number": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "card_type": 0,
        "account_id": 0
      }
    }
    

    Properties

    Name Type Required Description
    data ClioPaymentsCard true No description

    InterestCharge_base

    {
      "id": 0,
      "etag": "string",
      "date": "2018-03-22",
      "description": "string",
      "total": 0
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the InterestCharge
    etag string false ETag for the InterestCharge
    date string(date) false The InterestCharge date (as a ISO-8601 date)
    description string false The description for the InterestCharge
    total number(double) false The total amount for the InterestCharge

    InterestCharge

    {
      "id": 0,
      "etag": "string",
      "date": "2018-03-22",
      "description": "string",
      "total": 0,
      "bill": {
        "id": 0,
        "etag": "string",
        "number": "string",
        "issued_at": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "due_at": "2018-03-22",
        "tax_rate": 0,
        "secondary_tax_rate": 0,
        "updated_at": "2018-03-22T20:30:34Z",
        "subject": "string",
        "purchase_order": "string",
        "type": "MatterBill",
        "memo": "string",
        "start_at": "2018-03-22",
        "end_at": "2018-03-22",
        "balance": 0,
        "config": "string",
        "state": "draft",
        "kind": "revenue_kind",
        "total": 0,
        "paid": 0,
        "paid_at": "2018-03-22T20:30:34Z",
        "pending": 0,
        "due": 0,
        "can_update": true,
        "credits_issued": 0,
        "client_addresses": "string",
        "shared": true,
        "sub_total": 0,
        "tax_sum": 0,
        "secondary_tax_sum": 0
      },
      "balances": [
        {
          "id": 0,
          "amount": 0,
          "type": "Matter",
          "interest_amount": 0,
          "due": 0
        }
      ],
      "matters": [
        {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous InterestCharge_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » bill Bill_base false No description
    » balances [Balance_base] false Balance
    » matters [Matter_base] false Matter

    InterestChargeList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "date": "2018-03-22",
          "description": "string",
          "total": 0,
          "bill": {
            "id": 0,
            "etag": "string",
            "number": "string",
            "issued_at": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "due_at": "2018-03-22",
            "tax_rate": 0,
            "secondary_tax_rate": 0,
            "updated_at": "2018-03-22T20:30:34Z",
            "subject": "string",
            "purchase_order": "string",
            "type": "MatterBill",
            "memo": "string",
            "start_at": "2018-03-22",
            "end_at": "2018-03-22",
            "balance": 0,
            "config": "string",
            "state": "draft",
            "kind": "revenue_kind",
            "total": 0,
            "paid": 0,
            "paid_at": "2018-03-22T20:30:34Z",
            "pending": 0,
            "due": 0,
            "can_update": true,
            "credits_issued": 0,
            "client_addresses": "string",
            "shared": true,
            "sub_total": 0,
            "tax_sum": 0,
            "secondary_tax_sum": 0
          },
          "balances": [
            {
              "id": 0,
              "amount": 0,
              "type": "Matter",
              "interest_amount": 0,
              "due": 0
            }
          ],
          "matters": [
            {
              "id": 0,
              "etag": "string",
              "number": 0,
              "display_number": "string",
              "custom_number": "string",
              "description": "string",
              "status": "Pending",
              "location": "string",
              "client_reference": "string",
              "billable": true,
              "maildrop_address": "string",
              "billing_method": "flat",
              "open_date": "2018-03-22",
              "close_date": "2018-03-22",
              "pending_date": "2018-03-22",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z",
              "shared": true
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [InterestCharge] true InterestCharge List Response

    LogEntry_base

    {
      "id": 0,
      "type": "MatterLogEntry",
      "accessed_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the LogEntry
    type string false The type of the LogEntry
    accessed_at string(date-time) false The time the item was last accessed (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    type MatterLogEntry
    type ContactLogEntry

    LogEntry

    {
      "id": 0,
      "type": "MatterLogEntry",
      "accessed_at": "2018-03-22T20:30:34Z",
      "item": {
        "id": 0,
        "type": "Task",
        "identifier": "string",
        "secondary_identifier": "string"
      },
      "user": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous LogEntry_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » item PolymorphicObject_base false No description
    » user User_base false No description

    LogEntryList

    {
      "data": [
        {
          "id": 0,
          "type": "MatterLogEntry",
          "accessed_at": "2018-03-22T20:30:34Z",
          "item": {
            "id": 0,
            "type": "Task",
            "identifier": "string",
            "secondary_identifier": "string"
          },
          "user": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [LogEntry] true LogEntry List Response

    Contact_base

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "first_name": "string",
      "last_name": "string",
      "type": "Company",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "clio_connect_email": "string",
      "prefix": "string",
      "title": "string",
      "initials": "string",
      "client_connect_user_id": 0,
      "primary_email_address": "string",
      "primary_phone_number": "string",
      "ledes_client_id": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Contact
    etag string false ETag for the Contact
    name string false The full name of the Contact
    first_name string false First name of the Person
    last_name string false Last name of the Person
    type string false The type of the Contact
    created_at string(date-time) false The time the Contact was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Contact was last updated (as a ISO-8601 timestamp)
    clio_connect_email string false Clio Connect email if the Contact is a ClioConnect User
    prefix string false The prefix of the Contact (Mr, Mrs, etc)
    title string false The designated title of the Contact
    initials string false The initials of the Contact
    client_connect_user_id integer(int32) false The ID for the Clio Connect user associated with this Contact
    primary_email_address string false The primary email address associated with this Contact.
    primary_phone_number string false The primary phone number associated with this Contact.
    ledes_client_id string false Ledes client id of the Contact

    Enumerated Values

    Property Value
    type Company
    type Person

    Contact

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "first_name": "string",
      "last_name": "string",
      "type": "Company",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "clio_connect_email": "string",
      "prefix": "string",
      "title": "string",
      "initials": "string",
      "client_connect_user_id": 0,
      "primary_email_address": "string",
      "primary_phone_number": "string",
      "ledes_client_id": "string",
      "activity_rates": [
        {
          "id": 0,
          "etag": "string",
          "rate": 0,
          "flat_rate": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "contact_id": 0,
          "co_counsel_contact_id": 0
        }
      ],
      "addresses": [
        {
          "id": 0,
          "etag": "string",
          "street": "string",
          "city": "string",
          "province": "string",
          "postal_code": "string",
          "country": "string",
          "name": "Work",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ],
      "custom_field_values": [
        {
          "id": "string",
          "etag": "string",
          "field_name": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "field_type": "checkbox",
          "field_required": true,
          "field_displayed": true,
          "field_display_order": 0,
          "value": "string",
          "picklist_option": "string"
        }
      ],
      "email_addresses": [
        {
          "id": 0,
          "etag": "string",
          "address": "string",
          "name": "Work",
          "default_email": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ],
      "instant_messengers": [
        {
          "id": 0,
          "etag": "string",
          "address": "string",
          "name": "Work",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ],
      "phone_numbers": [
        {
          "id": 0,
          "etag": "string",
          "number": "string",
          "name": "Work",
          "default_number": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ],
      "web_sites": [
        {
          "id": 0,
          "etag": "string",
          "address": "string",
          "name": "Work",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ],
      "notification_methods": [
        {
          "id": 0,
          "etag": "string",
          "type": "Email",
          "email_address": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ],
      "account_balances": [
        {
          "id": 0,
          "balance": 0,
          "type": "string",
          "name": "string"
        }
      ],
      "company": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      },
      "avatar": {
        "id": 0,
        "etag": "string",
        "url": "string"
      },
      "payment_profile": {
        "id": 0,
        "etag": "string",
        "billing_setting_id": 0,
        "name": "string",
        "terms": 0,
        "discount_rate": 0,
        "discount_period": 0,
        "interest_rate": 0,
        "interest_period": 0,
        "interest_type": "simple"
      },
      "folder": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "deleted_at": "2018-03-22T20:30:34Z",
        "type": "Folder",
        "locked": true,
        "name": "string",
        "root": true
      },
      "co_counsel_rate": {
        "id": 0,
        "etag": "string",
        "rate": 0,
        "flat_rate": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "contact_id": 0,
        "co_counsel_contact_id": 0
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Contact_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » activity_rates [ActivityRate_base] false ActivityRate
    » addresses [Address_base] false Address
    » custom_field_values [CustomFieldValue_base] false CustomFieldValue
    » email_addresses [EmailAddress_base] false EmailAddress
    » instant_messengers [InstantMessenger_base] false InstantMessenger
    » phone_numbers [PhoneNumber_base] false PhoneNumber
    » web_sites [WebSite_base] false WebSite
    » notification_methods [NotificationMethod_base] false NotificationMethod
    » account_balances [AccountBalance_base] false AccountBalance
    » company Contact_base false No description
    » avatar Avatar_base false No description
    » payment_profile PaymentProfile_base false No description
    » folder Folder_base false No description
    » co_counsel_rate ActivityRate_base false No description

    ContactShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string",
        "activity_rates": [
          {
            "id": 0,
            "etag": "string",
            "rate": 0,
            "flat_rate": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "contact_id": 0,
            "co_counsel_contact_id": 0
          }
        ],
        "addresses": [
          {
            "id": 0,
            "etag": "string",
            "street": "string",
            "city": "string",
            "province": "string",
            "postal_code": "string",
            "country": "string",
            "name": "Work",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ],
        "custom_field_values": [
          {
            "id": "string",
            "etag": "string",
            "field_name": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "field_type": "checkbox",
            "field_required": true,
            "field_displayed": true,
            "field_display_order": 0,
            "value": "string",
            "picklist_option": "string"
          }
        ],
        "email_addresses": [
          {
            "id": 0,
            "etag": "string",
            "address": "string",
            "name": "Work",
            "default_email": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ],
        "instant_messengers": [
          {
            "id": 0,
            "etag": "string",
            "address": "string",
            "name": "Work",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ],
        "phone_numbers": [
          {
            "id": 0,
            "etag": "string",
            "number": "string",
            "name": "Work",
            "default_number": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ],
        "web_sites": [
          {
            "id": 0,
            "etag": "string",
            "address": "string",
            "name": "Work",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ],
        "notification_methods": [
          {
            "id": 0,
            "etag": "string",
            "type": "Email",
            "email_address": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ],
        "account_balances": [
          {
            "id": 0,
            "balance": 0,
            "type": "string",
            "name": "string"
          }
        ],
        "company": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        },
        "avatar": {
          "id": 0,
          "etag": "string",
          "url": "string"
        },
        "payment_profile": {
          "id": 0,
          "etag": "string",
          "billing_setting_id": 0,
          "name": "string",
          "terms": 0,
          "discount_rate": 0,
          "discount_period": 0,
          "interest_rate": 0,
          "interest_period": 0,
          "interest_type": "simple"
        },
        "folder": {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "deleted_at": "2018-03-22T20:30:34Z",
          "type": "Folder",
          "locked": true,
          "name": "string",
          "root": true
        },
        "co_counsel_rate": {
          "id": 0,
          "etag": "string",
          "rate": 0,
          "flat_rate": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "contact_id": 0,
          "co_counsel_contact_id": 0
        }
      }
    }
    

    Properties

    Name Type Required Description
    data Contact true No description

    ContactList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string",
          "activity_rates": [
            {
              "id": 0,
              "etag": "string",
              "rate": 0,
              "flat_rate": true,
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z",
              "contact_id": 0,
              "co_counsel_contact_id": 0
            }
          ],
          "addresses": [
            {
              "id": 0,
              "etag": "string",
              "street": "string",
              "city": "string",
              "province": "string",
              "postal_code": "string",
              "country": "string",
              "name": "Work",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ],
          "custom_field_values": [
            {
              "id": "string",
              "etag": "string",
              "field_name": "string",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z",
              "field_type": "checkbox",
              "field_required": true,
              "field_displayed": true,
              "field_display_order": 0,
              "value": "string",
              "picklist_option": "string"
            }
          ],
          "email_addresses": [
            {
              "id": 0,
              "etag": "string",
              "address": "string",
              "name": "Work",
              "default_email": true,
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ],
          "instant_messengers": [
            {
              "id": 0,
              "etag": "string",
              "address": "string",
              "name": "Work",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ],
          "phone_numbers": [
            {
              "id": 0,
              "etag": "string",
              "number": "string",
              "name": "Work",
              "default_number": true,
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ],
          "web_sites": [
            {
              "id": 0,
              "etag": "string",
              "address": "string",
              "name": "Work",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ],
          "notification_methods": [
            {
              "id": 0,
              "etag": "string",
              "type": "Email",
              "email_address": "string",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ],
          "account_balances": [
            {
              "id": 0,
              "balance": 0,
              "type": "string",
              "name": "string"
            }
          ],
          "company": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          },
          "avatar": {
            "id": 0,
            "etag": "string",
            "url": "string"
          },
          "payment_profile": {
            "id": 0,
            "etag": "string",
            "billing_setting_id": 0,
            "name": "string",
            "terms": 0,
            "discount_rate": 0,
            "discount_period": 0,
            "interest_rate": 0,
            "interest_period": 0,
            "interest_type": "simple"
          },
          "folder": {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "deleted_at": "2018-03-22T20:30:34Z",
            "type": "Folder",
            "locked": true,
            "name": "string",
            "root": true
          },
          "co_counsel_rate": {
            "id": 0,
            "etag": "string",
            "rate": 0,
            "flat_rate": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "contact_id": 0,
            "co_counsel_contact_id": 0
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Contact] true Contact List Response

    ActivityRate_base

    {
      "id": 0,
      "etag": "string",
      "rate": 0,
      "flat_rate": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "contact_id": 0,
      "co_counsel_contact_id": 0
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ActivityRate
    etag string false ETag for the ActivityRate
    rate number(double) false Monetary value of this rate. Either hourly value or flat rate value
    flat_rate boolean false Whether this is a flat rate
    created_at string(date-time) false The time the ActivityRate was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the ActivityRate was last updated (as a ISO-8601 timestamp)
    contact_id integer(int32) false Filter ActivityRate records for the contact.
    co_counsel_contact_id integer(int32) false Filter ActivityRate records for the co-counsel.

    ActivityRate

    {
      "id": 0,
      "etag": "string",
      "rate": 0,
      "flat_rate": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "contact_id": 0,
      "co_counsel_contact_id": 0,
      "user": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "group": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "type": "UserGroup"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ActivityRate_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » user User_base false No description
    » group Group_base false No description

    ActivityRateShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "rate": 0,
        "flat_rate": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "contact_id": 0,
        "co_counsel_contact_id": 0,
        "user": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "group": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "type": "UserGroup"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data ActivityRate true No description

    ActivityRateList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "rate": 0,
          "flat_rate": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "contact_id": 0,
          "co_counsel_contact_id": 0,
          "user": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "group": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "type": "UserGroup"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [ActivityRate] true ActivityRate List Response

    User_base

    {
      "account_owner": true,
      "clio_connect": true,
      "court_rules_default_attendee": true,
      "default_calendar_id": 0,
      "email": "string",
      "enabled": true,
      "etag": "string",
      "first_name": "string",
      "id": 0,
      "initials": "string",
      "last_name": "string",
      "name": "string",
      "phone_number": "string",
      "rate": 0,
      "subscription_type": "Attorney",
      "time_zone": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    account_owner boolean false Whether the User is the owner of the account
    clio_connect boolean false Whether the User is a Clio Connect user
    court_rules_default_attendee boolean false Whether the User is a default attendee for court rules events
    default_calendar_id integer(int32) false Default calendar id for User.
    email string false The email of the User
    enabled boolean false Whether the User is allowed to log in
    etag string false ETag for the User
    first_name string false The first name of the User
    id integer(int32) false Unique identifier for the User
    initials string false The initials of the User
    last_name string false The last name of the User
    name string false The full name of the User
    phone_number string false The primary phone number for the User.
    rate number(float) false Default user activity rate for User.
    subscription_type string false The subscription type of the User
    time_zone string false The selected time zone of the User
    created_at string(date-time) false The time the User was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the User was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    subscription_type Attorney
    subscription_type NonAttorney

    User

    {
      "account_owner": true,
      "clio_connect": true,
      "court_rules_default_attendee": true,
      "default_calendar_id": 0,
      "email": "string",
      "enabled": true,
      "etag": "string",
      "first_name": "string",
      "id": 0,
      "initials": "string",
      "last_name": "string",
      "name": "string",
      "phone_number": "string",
      "rate": 0,
      "subscription_type": "Attorney",
      "time_zone": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "default_activity_description": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "visible_to_co_counsel": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "default": true,
        "type": "string",
        "utbms_activity_id": 0,
        "utbms_task_name": "string",
        "utbms_task_id": 0,
        "accessible_to_user": true
      },
      "notification_methods": [
        {
          "id": 0,
          "etag": "string",
          "type": "Email",
          "email_address": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ],
      "account": {
        "id": 0,
        "etag": "string",
        "name": "string"
      },
      "avatar": {
        "id": 0,
        "etag": "string",
        "url": "string"
      },
      "contact": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous User_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » default_activity_description ActivityDescription_base false No description
    » notification_methods [NotificationMethod_base] false NotificationMethod
    » account Account_base false No description
    » avatar Avatar_base false No description
    » contact Contact_base false No description

    UserShow

    {
      "data": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "default_activity_description": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "visible_to_co_counsel": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "default": true,
          "type": "string",
          "utbms_activity_id": 0,
          "utbms_task_name": "string",
          "utbms_task_id": 0,
          "accessible_to_user": true
        },
        "notification_methods": [
          {
            "id": 0,
            "etag": "string",
            "type": "Email",
            "email_address": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ],
        "account": {
          "id": 0,
          "etag": "string",
          "name": "string"
        },
        "avatar": {
          "id": 0,
          "etag": "string",
          "url": "string"
        },
        "contact": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data User true No description

    UserList

    {
      "data": [
        {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "default_activity_description": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "visible_to_co_counsel": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "default": true,
            "type": "string",
            "utbms_activity_id": 0,
            "utbms_task_name": "string",
            "utbms_task_id": 0,
            "accessible_to_user": true
          },
          "notification_methods": [
            {
              "id": 0,
              "etag": "string",
              "type": "Email",
              "email_address": "string",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ],
          "account": {
            "id": 0,
            "etag": "string",
            "name": "string"
          },
          "avatar": {
            "id": 0,
            "etag": "string",
            "url": "string"
          },
          "contact": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [User] true User List Response

    ActivityDescription_base

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "visible_to_co_counsel": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "default": true,
      "type": "string",
      "utbms_activity_id": 0,
      "utbms_task_name": "string",
      "utbms_task_id": 0,
      "accessible_to_user": true
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ActivityDescription
    etag string false ETag for the ActivityDescription
    name string false The name of the ActivityDescription
    visible_to_co_counsel boolean false A toggle that determines if a co-counsel user of the firm can have access to this activity description
    created_at string(date-time) false The time the ActivityDescription was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the ActivityDescription was last updated (as a ISO-8601 timestamp)
    default boolean false Whether it is the user's default activity description
    type string false The type of the ActivityDescription
    utbms_activity_id integer(int32) false The UTBMS activity id if the ActivityDescription is a UTBMS activity description
    utbms_task_name string false The UTBMS activity task name if attached to a UTBMS activity description
    utbms_task_id integer(int32) false The UTBMS activity task id if attached to a UTBMS activity description
    accessible_to_user boolean false Determines if activity description is accessible to user

    ActivityDescription

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "visible_to_co_counsel": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "default": true,
      "type": "string",
      "utbms_activity_id": 0,
      "utbms_task_name": "string",
      "utbms_task_id": 0,
      "accessible_to_user": true,
      "groups": [
        {
          "id": 0,
          "etag": "string",
          "name": "string",
          "type": "UserGroup"
        }
      ],
      "rate": {
        "amount": 0,
        "type": "User",
        "hierarchy": "Default"
      },
      "utbms_task": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "code": "string",
        "description": "string",
        "type": "UtbmsTask",
        "utbms_set_id": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "utbms_activity": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "code": "string",
        "description": "string",
        "type": "UtbmsTask",
        "utbms_set_id": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ActivityDescription_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » groups [Group_base] false Group
    » rate ActivityDescriptionRate_base false No description
    » utbms_task UtbmsCode_base false No description
    » utbms_activity UtbmsCode_base false No description

    ActivityDescriptionShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "visible_to_co_counsel": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "default": true,
        "type": "string",
        "utbms_activity_id": 0,
        "utbms_task_name": "string",
        "utbms_task_id": 0,
        "accessible_to_user": true,
        "groups": [
          {
            "id": 0,
            "etag": "string",
            "name": "string",
            "type": "UserGroup"
          }
        ],
        "rate": {
          "amount": 0,
          "type": "User",
          "hierarchy": "Default"
        },
        "utbms_task": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "code": "string",
          "description": "string",
          "type": "UtbmsTask",
          "utbms_set_id": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "utbms_activity": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "code": "string",
          "description": "string",
          "type": "UtbmsTask",
          "utbms_set_id": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data ActivityDescription true No description

    ActivityDescriptionList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "name": "string",
          "visible_to_co_counsel": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "default": true,
          "type": "string",
          "utbms_activity_id": 0,
          "utbms_task_name": "string",
          "utbms_task_id": 0,
          "accessible_to_user": true,
          "groups": [
            {
              "id": 0,
              "etag": "string",
              "name": "string",
              "type": "UserGroup"
            }
          ],
          "rate": {
            "amount": 0,
            "type": "User",
            "hierarchy": "Default"
          },
          "utbms_task": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "code": "string",
            "description": "string",
            "type": "UtbmsTask",
            "utbms_set_id": 0,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "utbms_activity": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "code": "string",
            "description": "string",
            "type": "UtbmsTask",
            "utbms_set_id": 0,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [ActivityDescription] true ActivityDescription List Response

    Group_base

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "type": "UserGroup"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Group
    etag string false ETag for the Group
    name string false The name of the Group
    type string false The type of the Group

    Enumerated Values

    Property Value
    type UserGroup
    type AdhocGroup
    type AccountGroup

    Group

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "type": "UserGroup"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Group_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    GroupShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "type": "UserGroup"
      }
    }
    

    Properties

    Name Type Required Description
    data Group true No description

    GroupList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "name": "string",
          "type": "UserGroup"
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Group] true Group List Response

    ActivityDescriptionRate_base

    {
      "amount": 0,
      "type": "User",
      "hierarchy": "Default"
    }
    

    Properties

    Name Type Required Description
    amount number(double) false Monetary value of this rate. Either hourly value or flat rate value
    type string false What kind of rate it is.
    hierarchy string false What rate hierarchy the rate belongs to.

    Enumerated Values

    Property Value
    type User
    type FlatRate
    type Custom
    hierarchy Default
    hierarchy Activity
    hierarchy Matter
    hierarchy Client

    ActivityDescriptionRate

    {
      "amount": 0,
      "type": "User",
      "hierarchy": "Default"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ActivityDescriptionRate_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    UtbmsCode_base

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "code": "string",
      "description": "string",
      "type": "UtbmsTask",
      "utbms_set_id": 0,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the UtbmsCode
    etag string false ETag for the UtbmsCode
    name string false The name of the UtbmsCode
    code string false The UTBMS code for the UtbmsCode
    description string false The UTBMS description for the UtbmsCode
    type string false The type of the UtbmsCode
    utbms_set_id integer(int32) false Set id for the UtbmsCode
    created_at string(date-time) false The time the UtbmsCode was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the UtbmsCode was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    type UtbmsTask
    type UtbmsExpense
    type UtbmsActivity

    UtbmsCode

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "code": "string",
      "description": "string",
      "type": "UtbmsTask",
      "utbms_set_id": 0,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous UtbmsCode_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    UtbmsCodeShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "code": "string",
        "description": "string",
        "type": "UtbmsTask",
        "utbms_set_id": 0,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    Name Type Required Description
    data UtbmsCode true No description

    UtbmsCodeList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "name": "string",
          "code": "string",
          "description": "string",
          "type": "UtbmsTask",
          "utbms_set_id": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [UtbmsCode] true UtbmsCode List Response

    NotificationMethod_base

    {
      "id": 0,
      "etag": "string",
      "type": "Email",
      "email_address": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the NotificationMethod
    etag string false ETag for the NotificationMethod
    type string false Human readable description of the type of notification
    email_address string false Email address to send the notification to (only for email type)
    created_at string(date-time) false The time the NotificationMethod was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the NotificationMethod was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    type Email
    type Popup

    NotificationMethod

    {
      "id": 0,
      "etag": "string",
      "type": "Email",
      "email_address": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "user": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous NotificationMethod_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » user User_base false No description

    Account_base

    {
      "id": 0,
      "etag": "string",
      "name": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Account
    etag string false ETag for the Account
    name string false The name of the Account

    Account

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "owner": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Account_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » owner User_base false No description

    Avatar_base

    {
      "id": 0,
      "etag": "string",
      "url": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Avatar
    etag string false ETag for the Avatar
    url string false The URL for the Avatar

    Avatar

    {
      "id": 0,
      "etag": "string",
      "url": "string"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Avatar_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    Address_base

    {
      "id": 0,
      "etag": "string",
      "street": "string",
      "city": "string",
      "province": "string",
      "postal_code": "string",
      "country": "string",
      "name": "Work",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Address
    etag string false ETag for the Address
    street string false Street of the Address
    city string false City of the Address
    province string false Province or state of the Address
    postal_code string false Postal code of the Address
    country string false Country of the Address
    name string false The name of the Address
    created_at string(date-time) false The time the Address was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Address was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    name Work
    name Home
    name Billing
    name Other

    Address

    {
      "id": 0,
      "etag": "string",
      "street": "string",
      "city": "string",
      "province": "string",
      "postal_code": "string",
      "country": "string",
      "name": "Work",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Address_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    CustomFieldValue_base

    {
      "id": "string",
      "etag": "string",
      "field_name": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "field_type": "checkbox",
      "field_required": true,
      "field_displayed": true,
      "field_display_order": 0,
      "value": "string",
      "picklist_option": "string"
    }
    

    Properties

    Name Type Required Description
    id string false Unique identifier for the CustomFieldValue
    etag string false ETag for the CustomFieldValue
    field_name string false The name of the custom field
    created_at string(date-time) false The time the CustomFieldValue was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the CustomFieldValue was last updated (as a ISO-8601 timestamp)
    field_type string false The type of the CustomFieldValue
    field_required boolean false Whether the CustomFieldValue requires a value
    field_displayed boolean false Whether the CustomFieldValue is displayed by default
    field_display_order integer(int32) false The display position of the CustomFieldValue
    value string false The value of the CustomFieldValue
    picklist_option string false Picklist options if the custom field is of the type picklist

    Enumerated Values

    Property Value
    field_type checkbox
    field_type contact
    field_type currency
    field_type date
    field_type time
    field_type email
    field_type matter
    field_type numeric
    field_type picklist
    field_type text_area
    field_type text_line
    field_type url

    CustomFieldValue

    {
      "id": "string",
      "etag": "string",
      "field_name": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "field_type": "checkbox",
      "field_required": true,
      "field_displayed": true,
      "field_display_order": 0,
      "value": "string",
      "picklist_option": "string",
      "custom_field": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "name": "string",
        "parent_type": "Contact",
        "field_type": "checkbox",
        "displayed": true,
        "deleted": true,
        "required": true,
        "display_order": "string"
      },
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "contact": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous CustomFieldValue_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » custom_field CustomField_base false No description
    » matter Matter_base false No description
    » contact Contact_base false No description

    CustomField_base

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "name": "string",
      "parent_type": "Contact",
      "field_type": "checkbox",
      "displayed": true,
      "deleted": true,
      "required": true,
      "display_order": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the CustomField
    etag string false ETag for the CustomField
    created_at string(date-time) false The time the CustomField was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the CustomField was last updated (as a ISO-8601 timestamp)
    name string false The name of the CustomField
    parent_type string false Type of object the CustomField is for
    field_type string false Field type of the CustomField
    displayed boolean false Whether the CustomField is displayed by default
    deleted boolean false Whether the CustomField is deleted for future use
    required boolean false Whether the CustomField requires a value
    display_order string false The display position of the CustomField

    Enumerated Values

    Property Value
    parent_type Contact
    parent_type Matter
    field_type checkbox
    field_type contact
    field_type currency
    field_type date
    field_type time
    field_type email
    field_type matter
    field_type numeric
    field_type picklist
    field_type text_area
    field_type text_line
    field_type url

    CustomField

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "name": "string",
      "parent_type": "Contact",
      "field_type": "checkbox",
      "displayed": true,
      "deleted": true,
      "required": true,
      "display_order": "string",
      "picklist_options": [
        {
          "id": 0,
          "option": "string",
          "deleted_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous CustomField_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » picklist_options [PicklistOption_base] false PicklistOption

    CustomFieldShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "name": "string",
        "parent_type": "Contact",
        "field_type": "checkbox",
        "displayed": true,
        "deleted": true,
        "required": true,
        "display_order": "string",
        "picklist_options": [
          {
            "id": 0,
            "option": "string",
            "deleted_at": "2018-03-22T20:30:34Z"
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data CustomField true No description

    CustomFieldList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "name": "string",
          "parent_type": "Contact",
          "field_type": "checkbox",
          "displayed": true,
          "deleted": true,
          "required": true,
          "display_order": "string",
          "picklist_options": [
            {
              "id": 0,
              "option": "string",
              "deleted_at": "2018-03-22T20:30:34Z"
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [CustomField] true CustomField List Response

    PicklistOption_base

    {
      "id": 0,
      "option": "string",
      "deleted_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the PicklistOption
    option string false The value of the PicklistOption
    deleted_at string(date-time) false The time the PicklistOption was deleted (as a ISO-8601 timestamp)

    PicklistOption

    {
      "id": 0,
      "option": "string",
      "deleted_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous PicklistOption_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    EmailAddress_base

    {
      "id": 0,
      "etag": "string",
      "address": "string",
      "name": "Work",
      "default_email": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the EmailAddress
    etag string false ETag for the EmailAddress
    address string false The address of the EmailAddress
    name string false The type of EmailAddress it is
    default_email boolean false Whether it is the default for this contact
    created_at string(date-time) false The time the EmailAddress was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the EmailAddress was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    name Work
    name Home
    name Other

    EmailAddress

    {
      "id": 0,
      "etag": "string",
      "address": "string",
      "name": "Work",
      "default_email": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous EmailAddress_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    InstantMessenger_base

    {
      "id": 0,
      "etag": "string",
      "address": "string",
      "name": "Work",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the InstantMessenger
    etag string false ETag for the InstantMessenger
    address string false The address of the InstantMessenger
    name string false The type of InstantMessenger it is
    created_at string(date-time) false The time the InstantMessenger was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the InstantMessenger was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    name Work
    name Personal
    name Other

    InstantMessenger

    {
      "id": 0,
      "etag": "string",
      "address": "string",
      "name": "Work",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous InstantMessenger_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    PhoneNumber_base

    {
      "id": 0,
      "etag": "string",
      "number": "string",
      "name": "Work",
      "default_number": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the PhoneNumber
    etag string false ETag for the PhoneNumber
    number string false Contact's Phone Number
    name string false The type of PhoneNumber it is
    default_number boolean false Whether it is default for this contact
    created_at string(date-time) false The time the PhoneNumber was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the PhoneNumber was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    name Work
    name Personal
    name Other

    PhoneNumber

    {
      "id": 0,
      "etag": "string",
      "number": "string",
      "name": "Work",
      "default_number": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous PhoneNumber_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    WebSite_base

    {
      "id": 0,
      "etag": "string",
      "address": "string",
      "name": "Work",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the WebSite
    etag string false ETag for the WebSite
    address string false The address of the WebSite
    name string false The type of WebSite it is
    created_at string(date-time) false The time the WebSite was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the WebSite was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    name Work
    name Personal
    name Other

    WebSite

    {
      "id": 0,
      "etag": "string",
      "address": "string",
      "name": "Work",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous WebSite_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    AccountBalance_base

    {
      "id": 0,
      "balance": 0,
      "type": "string",
      "name": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the AccountBalance
    balance number(double) false The current balance of the bank account available to the matter or contact
    type string false The bank account type. Either Operating or Trust
    name string false The name of the bank account

    AccountBalance

    {
      "id": 0,
      "balance": 0,
      "type": "string",
      "name": "string"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous AccountBalance_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    PaymentProfile_base

    {
      "id": 0,
      "etag": "string",
      "billing_setting_id": 0,
      "name": "string",
      "terms": 0,
      "discount_rate": 0,
      "discount_period": 0,
      "interest_rate": 0,
      "interest_period": 0,
      "interest_type": "simple"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the PaymentProfile
    etag string false ETag for the PaymentProfile
    billing_setting_id integer(int32) false The unique identifier for the *PaymentProfile
    name string false The name of the *PaymentProfile
    terms integer(int32) false The total grace period for the *PaymentProfile
    discount_rate number(float) false The early payment discount rate for the *PaymentProfile
    discount_period integer(int32) false The early payment discount period for the *PaymentProfile
    interest_rate number(float) false The interest rate for the *PaymentProfile
    interest_period integer(int32) false The interest period interval for the *PaymentProfile
    interest_type string false The type of interest to be calculated for the *PaymentProfile (Simple or Compound)

    Enumerated Values

    Property Value
    interest_type simple
    interest_type compound

    PaymentProfile

    {
      "id": 0,
      "etag": "string",
      "billing_setting_id": 0,
      "name": "string",
      "terms": 0,
      "discount_rate": 0,
      "discount_period": 0,
      "interest_rate": 0,
      "interest_period": 0,
      "interest_type": "simple"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous PaymentProfile_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    ContingencyFee_base

    {
      "id": 0,
      "etag": "string",
      "show_contingency_award": true
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ContingencyFee
    etag string false ETag for the ContingencyFee
    show_contingency_award boolean false Whether the ContingencyFee is posted or on a bill

    ContingencyFee

    {
      "id": 0,
      "etag": "string",
      "show_contingency_award": true,
      "user": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ContingencyFee_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » user User_base false No description

    MatterCustomRate_base

    {
      "type": "FlatRate",
      "on_invoice": true
    }
    

    Properties

    Name Type Required Description
    type string false The type of the MatterCustomRate
    on_invoice boolean false Specifies if the matters's associated activity is posted or on a bill.

    Enumerated Values

    Property Value
    type FlatRate
    type HourlyRate
    type ContingencyFee

    MatterCustomRate

    {
      "type": "FlatRate",
      "on_invoice": true,
      "rates": [
        {
          "id": 0,
          "rate": 0,
          "award": 0,
          "note": "string",
          "date": "2018-03-22",
          "user": {
            "enabled": true,
            "etag": "string",
            "id": 0,
            "name": "string"
          },
          "group": {
            "id": 0,
            "etag": "string",
            "name": "string"
          },
          "activity_description": {
            "id": 0,
            "etag": "string",
            "name": "string"
          }
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous MatterCustomRate_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » rates [PolymorphicCustomRate] false PolymorphicCustomRate

    PolymorphicCustomRate_base

    {
      "id": 0,
      "rate": 0,
      "award": 0,
      "note": "string",
      "date": "2018-03-22"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false The unique identifier for the custom rate
    rate number(double) false If custom_rate.type is HourlyRate, it is the dollar amount of the custom rate of the User or Group for the Matter. If custom_rate.type is FlatRate, it is the dollar amount of the custom flat rate for the Matter. If custom_rate.type is ContingencyFee, it is the percentage of the contingency fee awarded to the user for the Matter. The value may also be expressed as string that represents a rational number such as 1/3. If the user does not have sufficient rate visibility, the rates are hidden.
    award number(double) false The value of the ContingencyFee award.
    note string false Details about the ContingencyFee award.
    date string(date) false The date of the ContingencyFee award.

    PolymorphicCustomRate

    {
      "id": 0,
      "rate": 0,
      "award": 0,
      "note": "string",
      "date": "2018-03-22",
      "user": {
        "enabled": true,
        "etag": "string",
        "id": 0,
        "name": "string"
      },
      "group": {
        "id": 0,
        "etag": "string",
        "name": "string"
      },
      "activity_description": {
        "id": 0,
        "etag": "string",
        "name": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous PolymorphicCustomRate_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » user PolymorphicCustomRate_User_base false No description
    » group PolymorphicCustomRate_Group_base false No description
    » activity_description PolymorphicCustomRate_ActivityDescription_base false No description

    PolymorphicCustomRate_User_base

    {
      "enabled": true,
      "etag": "string",
      "id": 0,
      "name": "string"
    }
    

    Properties

    Name Type Required Description
    enabled boolean false Whether the User is allowed to log in
    etag string false ETag for the User
    id integer(int32) false Unique identifier for the User
    name string false The full name of the User

    PolymorphicCustomRate_Group_base

    {
      "id": 0,
      "etag": "string",
      "name": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Group
    etag string false ETag for the Group
    name string false The name of the Group

    PolymorphicCustomRate_ActivityDescription_base

    {
      "id": 0,
      "etag": "string",
      "name": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ActivityDescription
    etag string false ETag for the ActivityDescription
    name string false The name of the ActivityDescription

    EvergreenRetainer_base

    {
      "id": 0,
      "etag": "string",
      "minimum_threshold": 0
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the EvergreenRetainer
    etag string false ETag for the EvergreenRetainer
    minimum_threshold number(double) false Minimum threshold of the EvergreenRetainer%

    EvergreenRetainer

    {
      "id": 0,
      "etag": "string",
      "minimum_threshold": 0,
      "recipients": [
        {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous EvergreenRetainer_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » recipients [User_base] false User

    MatterBudget_base

    {
      "id": 0,
      "etag": "string",
      "budget": 0,
      "include_expenses": true,
      "notification_threshold": 0,
      "notify_users": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the MatterBudget
    etag string false ETag for the MatterBudget
    budget number(double) false The amount allocated for the matter.
    include_expenses boolean false Whether the budget includes expenses.
    notification_threshold integer(int32) false Percentage of the budget when it starts notifying users.
    notify_users boolean false Whether to notify users when the matter reaches the notification threshold.
    created_at string(date-time) false The time the MatterBudget was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the MatterBudget was last updated (as a ISO-8601 timestamp)

    MatterBudget

    {
      "id": 0,
      "etag": "string",
      "budget": 0,
      "include_expenses": true,
      "notification_threshold": 0,
      "notify_users": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "users": [
        {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous MatterBudget_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » users [User_base] false User

    PracticeArea_base

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "name": "string",
      "code": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the PracticeArea
    etag string false ETag for the PracticeArea
    created_at string(date-time) false The time the PracticeArea was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the PracticeArea was last updated (as a ISO-8601 timestamp)
    name string false The name of the PracticeArea
    code string false The code of the PracticeArea

    PracticeArea

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "name": "string",
      "code": "string"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous PracticeArea_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    PracticeAreaShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "name": "string",
        "code": "string"
      }
    }
    

    Properties

    Name Type Required Description
    data PracticeArea true No description

    PracticeAreaList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "name": "string",
          "code": "string"
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [PracticeArea] true PracticeArea List Response

    Task_base

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "status": "pending",
      "description": "string",
      "priority": "High",
      "due_at": "2018-03-22",
      "completed_at": "2018-03-22T20:30:34Z",
      "notify_completion": true,
      "statute_of_limitations": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Task
    etag string false ETag for the Task
    name string false The name of the Task
    status string false Status of the Task. (Note that users without advanced tasks can only have either complete or pending)
    description string false A detailed description of the Task
    priority string false The priority of the Task
    due_at string(date) false The date the Task is due (as a ISO-8601 date)
    completed_at string(date-time) false The time the Task was completed (as a ISO-8601 timestamp)
    notify_completion boolean false Whether to notify the assigner of the task's completion
    statute_of_limitations boolean false Whether the task is a statute of limitations
    created_at string(date-time) false The time the Task was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Task was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    status pending
    status in_progress
    status in_review
    status complete
    priority High
    priority Normal
    priority Low

    Task

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "status": "pending",
      "description": "string",
      "priority": "High",
      "due_at": "2018-03-22",
      "completed_at": "2018-03-22T20:30:34Z",
      "notify_completion": true,
      "statute_of_limitations": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "task_type": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "deleted_at": "2018-03-22T20:30:34Z",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "assigner": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "assignee": {
        "id": 0,
        "type": "Contact",
        "identifier": "string",
        "secondary_identifier": "string",
        "enabled": true,
        "name": "string"
      },
      "reminders": [
        {
          "id": 0,
          "etag": "string",
          "duration": 0,
          "next_delivery_at": "2018-03-22T20:30:34Z",
          "state": "initializing",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Task_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » task_type TaskType_base false No description
    » assigner User_base false No description
    » matter Matter_base false No description
    » assignee Participant_base false No description
    » reminders [Reminder_base] false Reminder

    TaskShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "status": "pending",
        "description": "string",
        "priority": "High",
        "due_at": "2018-03-22",
        "completed_at": "2018-03-22T20:30:34Z",
        "notify_completion": true,
        "statute_of_limitations": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "task_type": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "deleted_at": "2018-03-22T20:30:34Z",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "assigner": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "assignee": {
          "id": 0,
          "type": "Contact",
          "identifier": "string",
          "secondary_identifier": "string",
          "enabled": true,
          "name": "string"
        },
        "reminders": [
          {
            "id": 0,
            "etag": "string",
            "duration": 0,
            "next_delivery_at": "2018-03-22T20:30:34Z",
            "state": "initializing",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data Task true No description

    TaskList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "name": "string",
          "status": "pending",
          "description": "string",
          "priority": "High",
          "due_at": "2018-03-22",
          "completed_at": "2018-03-22T20:30:34Z",
          "notify_completion": true,
          "statute_of_limitations": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "task_type": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "deleted_at": "2018-03-22T20:30:34Z",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "assigner": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "assignee": {
            "id": 0,
            "type": "Contact",
            "identifier": "string",
            "secondary_identifier": "string",
            "enabled": true,
            "name": "string"
          },
          "reminders": [
            {
              "id": 0,
              "etag": "string",
              "duration": 0,
              "next_delivery_at": "2018-03-22T20:30:34Z",
              "state": "initializing",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Task] true Task List Response

    Note_base

    {
      "id": 0,
      "etag": "string",
      "type": "MatterNote",
      "subject": "string",
      "detail": "string",
      "date": "2018-03-22",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Note
    etag string false ETag for the Note
    type string false The type of the Note
    subject string false The subject of the Note
    detail string false The body of the Note
    date string(date) false The date the Note is for (as a ISO-8601 date)
    created_at string(date-time) false The time the Note was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Note was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    type MatterNote
    type ContactNote

    Note

    {
      "id": 0,
      "etag": "string",
      "type": "MatterNote",
      "subject": "string",
      "detail": "string",
      "date": "2018-03-22",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "contact": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Note_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » matter Matter_base false No description
    » contact Contact_base false No description

    NoteShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "type": "MatterNote",
        "subject": "string",
        "detail": "string",
        "date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "contact": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data Note true No description

    NoteList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "type": "MatterNote",
          "subject": "string",
          "detail": "string",
          "date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "contact": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Note] true Note List Response

    TaskType_base

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "deleted_at": "2018-03-22T20:30:34Z",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the TaskType
    etag string false ETag for the TaskType
    name string false The name of the TaskType
    deleted_at string(date-time) false The time the TaskType was deleted (as a ISO-8601 timestamp)
    created_at string(date-time) false The time the TaskType was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the TaskType was last updated (as a ISO-8601 timestamp)

    TaskType

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "deleted_at": "2018-03-22T20:30:34Z",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous TaskType_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    TaskTypeShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "deleted_at": "2018-03-22T20:30:34Z",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    Name Type Required Description
    data TaskType true No description

    TaskTypeList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "name": "string",
          "deleted_at": "2018-03-22T20:30:34Z",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [TaskType] true TaskType List Response

    Participant_base

    {
      "id": 0,
      "type": "Contact",
      "identifier": "string",
      "secondary_identifier": "string",
      "enabled": true,
      "name": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Participant
    type string false The type of the Participant
    identifier string false A string to identify the Participant
    secondary_identifier string false A secondary string to identify the Participant
    enabled boolean false The enabled state of the Participant record. Always 'null' if Participant type is Contact
    name string false The name of the Participant record

    Enumerated Values

    Property Value
    type Contact
    type User

    Participant

    {
      "id": 0,
      "type": "Contact",
      "identifier": "string",
      "secondary_identifier": "string",
      "enabled": true,
      "name": "string"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Participant_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    Reminder_base

    {
      "id": 0,
      "etag": "string",
      "duration": 0,
      "next_delivery_at": "2018-03-22T20:30:34Z",
      "state": "initializing",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Reminder
    etag string false ETag for the Reminder
    duration integer(int32) false Time in minutes to remind user before the subject
    next_delivery_at string(date-time) false The time the Reminder will be delivered (as a ISO-8601 timestamp)
    state string false The current state of the Reminder
    created_at string(date-time) false The time the Reminder was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Reminder was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    state initializing
    state scheduling
    state rescheduling
    state scheduled
    state attempting_delivery
    state delivery_failed
    state delivered
    state delivery_skipped
    state invalid_user

    Reminder

    {
      "id": 0,
      "etag": "string",
      "duration": 0,
      "next_delivery_at": "2018-03-22T20:30:34Z",
      "state": "initializing",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "notification_method": {
        "id": 0,
        "etag": "string",
        "type": "Email",
        "email_address": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "subject": {
        "id": 0,
        "type": "Task",
        "identifier": "string",
        "secondary_identifier": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Reminder_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » notification_method NotificationMethod_base false No description
    » subject PolymorphicObject_base false No description

    ReminderShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "duration": 0,
        "next_delivery_at": "2018-03-22T20:30:34Z",
        "state": "initializing",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "notification_method": {
          "id": 0,
          "etag": "string",
          "type": "Email",
          "email_address": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "subject": {
          "id": 0,
          "type": "Task",
          "identifier": "string",
          "secondary_identifier": "string"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data Reminder true No description

    ReminderList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "duration": 0,
          "next_delivery_at": "2018-03-22T20:30:34Z",
          "state": "initializing",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "notification_method": {
            "id": 0,
            "etag": "string",
            "type": "Email",
            "email_address": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "subject": {
            "id": 0,
            "type": "Task",
            "identifier": "string",
            "secondary_identifier": "string"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Reminder] true Reminder List Response

    PolymorphicObject_base

    {
      "id": 0,
      "type": "Task",
      "identifier": "string",
      "secondary_identifier": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the PolymorphicObject
    type string false The type of the PolymorphicObject
    identifier string false A string to identify the PolymorphicObject
    secondary_identifier string false A secondary string to identify the PolymorphicObject

    Enumerated Values

    Property Value
    type Task
    type CalendarEntry
    type MatterNote
    type ContactNote
    type Matter
    type Contact
    type User
    type CreditMemo
    type Payment

    PolymorphicObject

    {
      "id": 0,
      "type": "Task",
      "identifier": "string",
      "secondary_identifier": "string"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous PolymorphicObject_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    ImportDetail_base

    {
      "id": 0,
      "status": "not_started",
      "source": "custom",
      "importer_type": "contact",
      "file_type": "csv",
      "has_mappings": true,
      "updated_at": "2018-03-22T20:30:34Z",
      "created_at": "2018-03-22T20:30:34Z",
      "byte_offset": 0,
      "file_size": 0,
      "error_file_available": true,
      "record_count": 0,
      "error_count": 0,
      "fatal_error_message": "string",
      "undone": true,
      "stopped": true
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ImportDetail
    status string false The current status of the import
    source string false The source of the import
    importer_type string false The importer type of the import
    file_type string false The file type of the import
    has_mappings boolean false Whether the import has mappings have been defined
    updated_at string(date-time) false The time the ImportDetail was last updated (as a ISO-8601 timestamp)
    created_at string(date-time) false The time the ImportDetail was created (as a ISO-8601 timestamp)
    byte_offset integer(int32) false The number of bytes from the import file that have been processed or are being processed
    file_size integer(int32) false The size of the import file in bytes
    error_file_available boolean false Whether an error file is available for download
    record_count integer(int32) false The number of records successfully created
    error_count integer(int32) false The number of errors generated
    fatal_error_message string false The fatal error message if it exists
    undone boolean false Whether this import has been undone
    stopped boolean false Whether this import has been stopped

    Enumerated Values

    Property Value
    status not_started
    status queued
    status in_progress
    status failed
    status completed
    source custom
    importer_type contact
    importer_type note
    importer_type matter
    importer_type activity
    importer_type task
    importer_type relationship
    importer_type calendar_entry
    file_type csv
    file_type ical
    file_type vcard

    ImportDetail

    {
      "id": 0,
      "status": "not_started",
      "source": "custom",
      "importer_type": "contact",
      "file_type": "csv",
      "has_mappings": true,
      "updated_at": "2018-03-22T20:30:34Z",
      "created_at": "2018-03-22T20:30:34Z",
      "byte_offset": 0,
      "file_size": 0,
      "error_file_available": true,
      "record_count": 0,
      "error_count": 0,
      "fatal_error_message": "string",
      "undone": true,
      "stopped": true,
      "import_mappings": [
        {
          "id": 0,
          "field_type": "string",
          "to": "string",
          "from": "string",
          "default_value": "string",
          "format": "string"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ImportDetail_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » import_mappings [ImportMapping_base] false ImportMapping

    ImportDetailShow

    {
      "data": {
        "id": 0,
        "status": "not_started",
        "source": "custom",
        "importer_type": "contact",
        "file_type": "csv",
        "has_mappings": true,
        "updated_at": "2018-03-22T20:30:34Z",
        "created_at": "2018-03-22T20:30:34Z",
        "byte_offset": 0,
        "file_size": 0,
        "error_file_available": true,
        "record_count": 0,
        "error_count": 0,
        "fatal_error_message": "string",
        "undone": true,
        "stopped": true,
        "import_mappings": [
          {
            "id": 0,
            "field_type": "string",
            "to": "string",
            "from": "string",
            "default_value": "string",
            "format": "string"
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data ImportDetail true No description

    ImportDetailList

    {
      "data": [
        {
          "id": 0,
          "status": "not_started",
          "source": "custom",
          "importer_type": "contact",
          "file_type": "csv",
          "has_mappings": true,
          "updated_at": "2018-03-22T20:30:34Z",
          "created_at": "2018-03-22T20:30:34Z",
          "byte_offset": 0,
          "file_size": 0,
          "error_file_available": true,
          "record_count": 0,
          "error_count": 0,
          "fatal_error_message": "string",
          "undone": true,
          "stopped": true,
          "import_mappings": [
            {
              "id": 0,
              "field_type": "string",
              "to": "string",
              "from": "string",
              "default_value": "string",
              "format": "string"
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [ImportDetail] true ImportDetail List Response

    ImportMapping_base

    {
      "id": 0,
      "field_type": "string",
      "to": "string",
      "from": "string",
      "default_value": "string",
      "format": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the ImportMapping
    field_type string false The type of the field
    to string false The destination field
    from string false The source field
    default_value string false The default value for the field
    format string false The format of the field

    Enumerated Values

    Property Value
    field_type string
    field_type boolean
    field_type date
    field_type time

    ImportMapping

    {
      "id": 0,
      "field_type": "string",
      "to": "string",
      "from": "string",
      "default_value": "string",
      "format": "string"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous ImportMapping_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    CustomFieldSetAssociation_base

    {
      "id": 0,
      "etag": "string",
      "display_order": 0,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the CustomFieldSetAssociation
    etag string false ETag for the CustomFieldSetAssociation
    display_order integer(int32) false The display position of the CustomFieldSetAssociation
    created_at string(date-time) false The time the CustomFieldSetAssociation was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the CustomFieldSetAssociation was last updated (as a ISO-8601 timestamp)

    CustomFieldSetAssociation

    {
      "id": 0,
      "etag": "string",
      "display_order": 0,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "custom_field_set": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "parent_type": "Contact",
        "displayed": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "parent": {
        "id": 0,
        "type": "Task",
        "identifier": "string",
        "secondary_identifier": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous CustomFieldSetAssociation_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » custom_field_set CustomFieldSet_base false No description
    » parent PolymorphicObject_base false No description

    CustomFieldSet_base

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "parent_type": "Contact",
      "displayed": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the CustomFieldSet
    etag string false ETag for the CustomFieldSet
    name string false The name of the custom field set.
    parent_type string false Type of object the CustomFieldSet is for.
    displayed boolean false Whether or not the CustomFieldSet should be displayed by default.
    created_at string(date-time) false The time the CustomFieldSet was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the CustomFieldSet was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    parent_type Contact
    parent_type Matter

    CustomFieldSet

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "parent_type": "Contact",
      "displayed": true,
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "custom_fields": [
        {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "name": "string",
          "parent_type": "Contact",
          "field_type": "checkbox",
          "displayed": true,
          "deleted": true,
          "required": true,
          "display_order": "string"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous CustomFieldSet_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » custom_fields [CustomField_base] false CustomField

    CustomFieldSetList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "name": "string",
          "parent_type": "Contact",
          "displayed": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "custom_fields": [
            {
              "id": 0,
              "etag": "string",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z",
              "name": "string",
              "parent_type": "Contact",
              "field_type": "checkbox",
              "displayed": true,
              "deleted": true,
              "required": true,
              "display_order": "string"
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [CustomFieldSet] true CustomFieldSet List Response

    Relationship_base

    {
      "id": 0,
      "etag": "string",
      "description": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Relationship
    etag string false ETag for the Relationship
    description string false A detailed description of the Relationship
    created_at string(date-time) false The time the Relationship was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Relationship was last updated (as a ISO-8601 timestamp)

    Relationship

    {
      "id": 0,
      "etag": "string",
      "description": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "contact": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Relationship_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » matter Matter_base false No description
    » contact Contact_base false No description

    RelationshipShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "description": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "contact": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data Relationship true No description

    RelationshipList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "description": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "contact": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Relationship] true Relationship List Response

    TaskTemplateListInstace_base

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the TaskTemplateListInstace
    etag string false ETag for the TaskTemplateListInstace
    created_at string(date-time) false The time the TaskTemplateListInstace was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the TaskTemplateListInstace was last updated (as a ISO-8601 timestamp)

    TaskTemplateListInstace

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "task_template_list": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "description": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous TaskTemplateListInstace_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » matter Matter_base false No description
    » task_template_list TaskTemplateList_base false No description

    TaskTemplateList_base

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "description": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the TaskTemplateList
    etag string false ETag for the TaskTemplateList
    name string false The name of the TaskTemplateList
    description string false A detailed description of the TaskTemplateList
    created_at string(date-time) false The time the TaskTemplateList was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the TaskTemplateList was last updated (as a ISO-8601 timestamp)

    TaskTemplateListShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "description": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "practice_area": {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "name": "string",
          "code": "string"
        },
        "creator": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data TaskTemplateList true No description

    TaskTemplateListList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "name": "string",
          "description": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "practice_area": {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "name": "string",
            "code": "string"
          },
          "creator": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [TaskTemplateList] true TaskTemplateList List Response

    DocumentCategory_base

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the DocumentCategory
    etag string false ETag for the DocumentCategory
    name string false The name of the DocumentCategory
    created_at string(date-time) false The time the DocumentCategory was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the DocumentCategory was last updated (as a ISO-8601 timestamp)

    DocumentCategory

    {
      "id": 0,
      "etag": "string",
      "name": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous DocumentCategory_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    DocumentCategoryShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    Name Type Required Description
    data DocumentCategory true No description

    DocumentCategoryList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "name": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [DocumentCategory] true DocumentCategory List Response

    DocumentVersion_base

    {
      "id": 0,
      "etag": "string",
      "uuid": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "filename": "string",
      "size": 0,
      "version_number": 0,
      "content_type": "string",
      "received_at": "2018-03-22T20:30:34Z",
      "put_url": "string",
      "fully_uploaded": true
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the DocumentVersion
    etag string false ETag for the DocumentVersion
    uuid string false UUID associated with the DocumentVersion. UUID is required to mark a document fully uploaded.
    created_at string(date-time) false The time the DocumentVersion was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the DocumentVersion was last updated (as a ISO-8601 timestamp)
    filename string false The uploaded file name of the DocumentVersion.
    size integer(int32) false The size of the the DocumentVersion in bytes.
    version_number integer(int32) false The ordered number of when this DocumentVersion was uploaded.
    content_type string false A standard MIME type describing the format of the object data.
    received_at string(date-time) false The time the DocumentVersion was received (as an ISO-8601 timestamp)
    put_url string false A signed URL for uploading the file in a single operation. It expires in 10 minutes. If the document is fully uploaded, the field is empty.
    fully_uploaded boolean false True if the DocumentVersion is uploaded. False if the DocumentVersion is being uploaded.

    DocumentVersion

    {
      "id": 0,
      "etag": "string",
      "uuid": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "filename": "string",
      "size": 0,
      "version_number": 0,
      "content_type": "string",
      "received_at": "2018-03-22T20:30:34Z",
      "put_url": "string",
      "fully_uploaded": true,
      "creator": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "put_headers": [
        {
          "name": "string",
          "value": "string"
        }
      ],
      "multiparts": [
        {
          "part_number": 0,
          "put_url": "string",
          "put_headers": [
            {
              "name": "string",
              "value": "string"
            }
          ]
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous DocumentVersion_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » creator User_base false No description
    » put_headers [MultipartHeader_base] false MultipartHeader
    » multiparts [Multipart] false Multipart

    MultipartHeader_base

    {
      "name": "string",
      "value": "string"
    }
    

    Properties

    Name Type Required Description
    name string false Required HTTP header field name for uploading.
    value string false Required HTTP header field value for uploading.

    MultipartHeader

    {
      "name": "string",
      "value": "string"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous MultipartHeader_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    Multipart_base

    {
      "part_number": 0,
      "put_url": "string"
    }
    

    Properties

    Name Type Required Description
    part_number integer(int32) false Unique identifier of a part which defines its position within the document being uploaded.
    put_url string false A signed URL for uploading the file part. It expires in 10 minutes.

    Multipart

    {
      "part_number": 0,
      "put_url": "string",
      "put_headers": [
        {
          "name": "string",
          "value": "string"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Multipart_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » put_headers [MultipartHeader_base] false MultipartHeader

    DocumentAutomation_base

    {
      "id": 0,
      "etag": "string",
      "state": null,
      "export_formats": "pdf",
      "filename": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the DocumentAutomation
    etag string false ETag for the DocumentAutomation
    state string false A text description of what the automation is currently doing
    export_formats string false An array of what formats were requested
    filename string false The name of the file being generated.
    created_at string(date-time) false The time the DocumentAutomation was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the DocumentAutomation was last updated (as a ISO-8601 timestamp)

    Enumerated Values

    Property Value
    state null
    export_formats pdf
    export_formats original

    DocumentAutomation

    {
      "id": 0,
      "etag": "string",
      "state": null,
      "export_formats": "pdf",
      "filename": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "document_template": {
        "id": 0,
        "etag": "string",
        "size": 0,
        "content_type": "string",
        "filename": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "documents": [
        {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "deleted_at": "2018-03-22T20:30:34Z",
          "type": "Document",
          "locked": true,
          "name": "string",
          "received_at": "2018-03-22T20:30:34Z",
          "filename": "string"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous DocumentAutomation_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » matter Matter_base false No description
    » document_template DocumentTemplate_base false No description
    » documents [Document_base] false Document

    DocumentAutomationShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "state": null,
        "export_formats": "pdf",
        "filename": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "document_template": {
          "id": 0,
          "etag": "string",
          "size": 0,
          "content_type": "string",
          "filename": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "documents": [
          {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "deleted_at": "2018-03-22T20:30:34Z",
            "type": "Document",
            "locked": true,
            "name": "string",
            "received_at": "2018-03-22T20:30:34Z",
            "filename": "string"
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data DocumentAutomation true No description

    DocumentAutomationList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "state": null,
          "export_formats": "pdf",
          "filename": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "document_template": {
            "id": 0,
            "etag": "string",
            "size": 0,
            "content_type": "string",
            "filename": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "documents": [
            {
              "id": 0,
              "etag": "string",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z",
              "deleted_at": "2018-03-22T20:30:34Z",
              "type": "Document",
              "locked": true,
              "name": "string",
              "received_at": "2018-03-22T20:30:34Z",
              "filename": "string"
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [DocumentAutomation] true DocumentAutomation List Response

    DocumentTemplate_base

    {
      "id": 0,
      "etag": "string",
      "size": 0,
      "content_type": "string",
      "filename": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the DocumentTemplate
    etag string false ETag for the DocumentTemplate
    size integer(int32) false The size in bytes of the template
    content_type string false A standard MIME type describing the format of the object data.
    filename string false The name of the original file that was uploaded
    created_at string(date-time) false The time the DocumentTemplate was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the DocumentTemplate was last updated (as a ISO-8601 timestamp)

    DocumentTemplate

    {
      "id": 0,
      "etag": "string",
      "size": 0,
      "content_type": "string",
      "filename": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "document_category": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "last_modified_by": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous DocumentTemplate_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » document_category DocumentCategory_base false No description
    » last_modified_by User_base false No description

    DocumentTemplateShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "size": 0,
        "content_type": "string",
        "filename": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "document_category": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "last_modified_by": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      }
    }
    

    Properties

    Name Type Required Description
    data DocumentTemplate true No description

    DocumentTemplateList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "size": 0,
          "content_type": "string",
          "filename": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "document_category": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "last_modified_by": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [DocumentTemplate] true DocumentTemplate List Response

    Document_base

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "deleted_at": "2018-03-22T20:30:34Z",
      "type": "Document",
      "locked": true,
      "name": "string",
      "received_at": "2018-03-22T20:30:34Z",
      "filename": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Document
    etag string false ETag for the Document
    created_at string(date-time) false The time the Document was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Document was last updated (as a ISO-8601 timestamp)
    deleted_at string(date-time) false The time the Document was deleted (as a ISO-8601 timestamp)
    type string false The type of the Document
    locked boolean false Whether or not the Document is locked. Locked Document cannot be modified
    name string false The name of the Document
    received_at string(date-time) false The time the last document version was received (as an ISO-8601 timestamp)
    filename string false The uploaded file name of the latest document version.

    Enumerated Values

    Property Value
    type Document

    Document

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "deleted_at": "2018-03-22T20:30:34Z",
      "type": "Document",
      "locked": true,
      "name": "string",
      "received_at": "2018-03-22T20:30:34Z",
      "filename": "string",
      "parent": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "deleted_at": "2018-03-22T20:30:34Z",
        "type": "Folder",
        "locked": true,
        "name": "string",
        "root": true
      },
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "contact": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      },
      "document_category": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "creator": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "latest_document_version": {
        "id": 0,
        "etag": "string",
        "uuid": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "filename": "string",
        "size": 0,
        "version_number": 0,
        "content_type": "string",
        "received_at": "2018-03-22T20:30:34Z",
        "put_url": "string",
        "fully_uploaded": true,
        "creator": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "put_headers": [
          {
            "name": "string",
            "value": "string"
          }
        ],
        "multiparts": [
          {
            "part_number": 0,
            "put_url": "string",
            "put_headers": [
              {
                "name": "string",
                "value": "string"
              }
            ]
          }
        ]
      },
      "document_versions": [
        {
          "id": 0,
          "etag": "string",
          "uuid": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "filename": "string",
          "size": 0,
          "version_number": 0,
          "content_type": "string",
          "received_at": "2018-03-22T20:30:34Z",
          "put_url": "string",
          "fully_uploaded": true
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Document_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » parent Folder_base false No description
    » matter Matter_base false No description
    » contact Contact_base false No description
    » document_category DocumentCategory_base false No description
    » creator User_base false No description
    » latest_document_version DocumentVersion false No description
    » document_versions [DocumentVersion_base] false DocumentVersion

    DocumentShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "deleted_at": "2018-03-22T20:30:34Z",
        "type": "Document",
        "locked": true,
        "name": "string",
        "received_at": "2018-03-22T20:30:34Z",
        "filename": "string",
        "parent": {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "deleted_at": "2018-03-22T20:30:34Z",
          "type": "Folder",
          "locked": true,
          "name": "string",
          "root": true
        },
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "contact": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        },
        "document_category": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "creator": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "latest_document_version": {
          "id": 0,
          "etag": "string",
          "uuid": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "filename": "string",
          "size": 0,
          "version_number": 0,
          "content_type": "string",
          "received_at": "2018-03-22T20:30:34Z",
          "put_url": "string",
          "fully_uploaded": true,
          "creator": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "put_headers": [
            {
              "name": "string",
              "value": "string"
            }
          ],
          "multiparts": [
            {
              "part_number": 0,
              "put_url": "string",
              "put_headers": [
                {
                  "name": "string",
                  "value": "string"
                }
              ]
            }
          ]
        },
        "document_versions": [
          {
            "id": 0,
            "etag": "string",
            "uuid": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "filename": "string",
            "size": 0,
            "version_number": 0,
            "content_type": "string",
            "received_at": "2018-03-22T20:30:34Z",
            "put_url": "string",
            "fully_uploaded": true
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data Document true No description

    DocumentList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "deleted_at": "2018-03-22T20:30:34Z",
          "type": "Document",
          "locked": true,
          "name": "string",
          "received_at": "2018-03-22T20:30:34Z",
          "filename": "string",
          "parent": {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "deleted_at": "2018-03-22T20:30:34Z",
            "type": "Folder",
            "locked": true,
            "name": "string",
            "root": true
          },
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "contact": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          },
          "document_category": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "creator": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "latest_document_version": {
            "id": 0,
            "etag": "string",
            "uuid": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "filename": "string",
            "size": 0,
            "version_number": 0,
            "content_type": "string",
            "received_at": "2018-03-22T20:30:34Z",
            "put_url": "string",
            "fully_uploaded": true,
            "creator": {
              "account_owner": true,
              "clio_connect": true,
              "court_rules_default_attendee": true,
              "default_calendar_id": 0,
              "email": "string",
              "enabled": true,
              "etag": "string",
              "first_name": "string",
              "id": 0,
              "initials": "string",
              "last_name": "string",
              "name": "string",
              "phone_number": "string",
              "rate": 0,
              "subscription_type": "Attorney",
              "time_zone": "string",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            },
            "put_headers": [
              {
                "name": "string",
                "value": "string"
              }
            ],
            "multiparts": [
              {
                "part_number": 0,
                "put_url": "string",
                "put_headers": [
                  {
                    "name": "string",
                    "value": "string"
                  }
                ]
              }
            ]
          },
          "document_versions": [
            {
              "id": 0,
              "etag": "string",
              "uuid": "string",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z",
              "filename": "string",
              "size": 0,
              "version_number": 0,
              "content_type": "string",
              "received_at": "2018-03-22T20:30:34Z",
              "put_url": "string",
              "fully_uploaded": true
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Document] true Document List Response

    DocumentArchive_base

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "size": 0,
      "progress": 0,
      "state": "not_started",
      "message": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the DocumentArchive
    etag string false ETag for the DocumentArchive
    created_at string(date-time) false The time the DocumentArchive was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the DocumentArchive was last updated (as a ISO-8601 timestamp)
    size integer(int32) false The size of the DocumentArchive in bytes.
    progress number(double) false The percent completion of the DocumentArchive.
    state string false The current state of the DocumentArchive.
    message string false A message to indicate why the DocumentArchive didn't complete.

    Enumerated Values

    Property Value
    state not_started
    state queued
    state in_progress
    state completed
    state failed

    DocumentArchive

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "size": 0,
      "progress": 0,
      "state": "not_started",
      "message": "string"
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous DocumentArchive_base false No description

    and

    Name Type Required Description
    anonymous object false No description

    DocumentArchiveShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "size": 0,
        "progress": 0,
        "state": "not_started",
        "message": "string"
      }
    }
    

    Properties

    Name Type Required Description
    data DocumentArchive true No description

    Item_base

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "deleted_at": "2018-03-22T20:30:34Z",
      "type": "Document",
      "locked": true,
      "name": "string"
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Item
    etag string false ETag for the Item
    created_at string(date-time) false The time the Item was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Item was last updated (as a ISO-8601 timestamp)
    deleted_at string(date-time) false The time the Item was deleted (as a ISO-8601 timestamp)
    type string false The type of the Item
    locked boolean false Whether or not the Item is locked. Locked Item cannot be modified
    name string false The name of the Item

    Enumerated Values

    Property Value
    type Document
    type Folder

    Item

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "deleted_at": "2018-03-22T20:30:34Z",
      "type": "Document",
      "locked": true,
      "name": "string",
      "parent": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "deleted_at": "2018-03-22T20:30:34Z",
        "type": "Folder",
        "locked": true,
        "name": "string",
        "root": true
      },
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "contact": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      },
      "document_category": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "creator": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "latest_document_version": {
        "id": 0,
        "etag": "string",
        "uuid": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "filename": "string",
        "size": 0,
        "version_number": 0,
        "content_type": "string",
        "received_at": "2018-03-22T20:30:34Z",
        "put_url": "string",
        "fully_uploaded": true
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Item_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » parent Folder_base false No description
    » matter Matter_base false No description
    » contact Contact_base false No description
    » document_category DocumentCategory_base false No description
    » creator User_base false No description
    » latest_document_version DocumentVersion_base false No description

    ItemList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "deleted_at": "2018-03-22T20:30:34Z",
          "type": "Document",
          "locked": true,
          "name": "string",
          "parent": {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "deleted_at": "2018-03-22T20:30:34Z",
            "type": "Folder",
            "locked": true,
            "name": "string",
            "root": true
          },
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "contact": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          },
          "document_category": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "creator": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "latest_document_version": {
            "id": 0,
            "etag": "string",
            "uuid": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "filename": "string",
            "size": 0,
            "version_number": 0,
            "content_type": "string",
            "received_at": "2018-03-22T20:30:34Z",
            "put_url": "string",
            "fully_uploaded": true
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Item] true Item List Response

    Folder_base

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "deleted_at": "2018-03-22T20:30:34Z",
      "type": "Folder",
      "locked": true,
      "name": "string",
      "root": true
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Folder
    etag string false ETag for the Folder
    created_at string(date-time) false The time the Folder was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Folder was last updated (as a ISO-8601 timestamp)
    deleted_at string(date-time) false The time the Folder was deleted (as a ISO-8601 timestamp)
    type string false The type of the Folder
    locked boolean false Whether or not the Folder is locked. Locked Folder cannot be modified
    name string false The name of the Folder
    root boolean false Whether or not the Folder is the root folder. There is only one root folder per account

    Enumerated Values

    Property Value
    type Folder

    Folder

    {
      "id": 0,
      "etag": "string",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "deleted_at": "2018-03-22T20:30:34Z",
      "type": "Folder",
      "locked": true,
      "name": "string",
      "root": true,
      "parent": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "deleted_at": "2018-03-22T20:30:34Z",
        "type": "Folder",
        "locked": true,
        "name": "string",
        "root": true
      },
      "matter": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true
      },
      "contact": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      },
      "document_category": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "creator": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "latest_document_version": {
        "id": 0,
        "etag": "string",
        "uuid": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "filename": "string",
        "size": 0,
        "version_number": 0,
        "content_type": "string",
        "received_at": "2018-03-22T20:30:34Z",
        "put_url": "string",
        "fully_uploaded": true
      }
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Folder_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » parent Folder_base false No description
    » matter Matter_base false No description
    » contact Contact_base false No description
    » document_category DocumentCategory_base false No description
    » creator User_base false No description
    » latest_document_version DocumentVersion_base false No description

    FolderShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "deleted_at": "2018-03-22T20:30:34Z",
        "type": "Folder",
        "locked": true,
        "name": "string",
        "root": true,
        "parent": {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "deleted_at": "2018-03-22T20:30:34Z",
          "type": "Folder",
          "locked": true,
          "name": "string",
          "root": true
        },
        "matter": {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true
        },
        "contact": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        },
        "document_category": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "creator": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "latest_document_version": {
          "id": 0,
          "etag": "string",
          "uuid": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "filename": "string",
          "size": 0,
          "version_number": 0,
          "content_type": "string",
          "received_at": "2018-03-22T20:30:34Z",
          "put_url": "string",
          "fully_uploaded": true
        }
      }
    }
    

    Properties

    Name Type Required Description
    data Folder true No description

    FolderList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "deleted_at": "2018-03-22T20:30:34Z",
          "type": "Folder",
          "locked": true,
          "name": "string",
          "root": true,
          "parent": {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "deleted_at": "2018-03-22T20:30:34Z",
            "type": "Folder",
            "locked": true,
            "name": "string",
            "root": true
          },
          "matter": {
            "id": 0,
            "etag": "string",
            "number": 0,
            "display_number": "string",
            "custom_number": "string",
            "description": "string",
            "status": "Pending",
            "location": "string",
            "client_reference": "string",
            "billable": true,
            "maildrop_address": "string",
            "billing_method": "flat",
            "open_date": "2018-03-22",
            "close_date": "2018-03-22",
            "pending_date": "2018-03-22",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "shared": true
          },
          "contact": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          },
          "document_category": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "creator": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "latest_document_version": {
            "id": 0,
            "etag": "string",
            "uuid": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "filename": "string",
            "size": 0,
            "version_number": 0,
            "content_type": "string",
            "received_at": "2018-03-22T20:30:34Z",
            "put_url": "string",
            "fully_uploaded": true
          }
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Folder] true Folder List Response

    Matter_base

    {
      "id": 0,
      "etag": "string",
      "number": 0,
      "display_number": "string",
      "custom_number": "string",
      "description": "string",
      "status": "Pending",
      "location": "string",
      "client_reference": "string",
      "billable": true,
      "maildrop_address": "string",
      "billing_method": "flat",
      "open_date": "2018-03-22",
      "close_date": "2018-03-22",
      "pending_date": "2018-03-22",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "shared": true
    }
    

    Properties

    Name Type Required Description
    id integer(int32) false Unique identifier for the Matter
    etag string false ETag for the Matter
    number integer(int32) false The number given to the Matter within an account
    display_number string false The reference and label of the Matter. Depending on the account's manual_matter_numbering setting, this is either read only (generated) or customizable.
    custom_number string false User defined custom number of the Matter
    description string false The detailed description of the Matter
    status string false The current status of the Matter
    location string false The location of the Matter
    client_reference string false Client Reference string for external uses
    billable boolean false Whether this matter is billable
    maildrop_address string false A unique Maildrop email address for the matter
    billing_method string false Billing method of this matter
    open_date string(date) false The date the matter was set to open (as a ISO-8601 date)
    close_date string(date) false The date the matter was set to closed (as a ISO-8601 date)
    pending_date string(date) false The date the matter was set to pending (as a ISO-8601 date)
    created_at string(date-time) false The time the Matter was created (as a ISO-8601 timestamp)
    updated_at string(date-time) false The time the Matter was last updated (as a ISO-8601 timestamp)
    shared boolean false Whether the matter is currently shared with Clio Connect

    Enumerated Values

    Property Value
    status Pending
    status Open
    status Closed
    billing_method flat
    billing_method contingency
    billing_method hourly

    Matter

    {
      "id": 0,
      "etag": "string",
      "number": 0,
      "display_number": "string",
      "custom_number": "string",
      "description": "string",
      "status": "Pending",
      "location": "string",
      "client_reference": "string",
      "billable": true,
      "maildrop_address": "string",
      "billing_method": "flat",
      "open_date": "2018-03-22",
      "close_date": "2018-03-22",
      "pending_date": "2018-03-22",
      "created_at": "2018-03-22T20:30:34Z",
      "updated_at": "2018-03-22T20:30:34Z",
      "shared": true,
      "client": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "type": "Company",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "clio_connect_email": "string",
        "prefix": "string",
        "title": "string",
        "initials": "string",
        "client_connect_user_id": 0,
        "primary_email_address": "string",
        "primary_phone_number": "string",
        "ledes_client_id": "string"
      },
      "contingency_fee": {
        "id": 0,
        "etag": "string",
        "show_contingency_award": true
      },
      "custom_rate": {
        "type": "FlatRate",
        "on_invoice": true,
        "rates": [
          {
            "id": 0,
            "rate": 0,
            "award": 0,
            "note": "string",
            "date": "2018-03-22",
            "user": {
              "enabled": true,
              "etag": "string",
              "id": 0,
              "name": "string"
            },
            "group": {
              "id": 0,
              "etag": "string",
              "name": "string"
            },
            "activity_description": {
              "id": 0,
              "etag": "string",
              "name": "string"
            }
          }
        ]
      },
      "folder": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "deleted_at": "2018-03-22T20:30:34Z",
        "type": "Folder",
        "locked": true,
        "name": "string",
        "root": true
      },
      "group": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "type": "UserGroup"
      },
      "matter_budget": {
        "id": 0,
        "etag": "string",
        "budget": 0,
        "include_expenses": true,
        "notification_threshold": 0,
        "notify_users": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "originating_attorney": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "practice_area": {
        "id": 0,
        "etag": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "name": "string",
        "code": "string"
      },
      "responsible_attorney": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "statute_of_limitations": {
        "id": 0,
        "etag": "string",
        "name": "string",
        "status": "pending",
        "description": "string",
        "priority": "High",
        "due_at": "2018-03-22",
        "completed_at": "2018-03-22T20:30:34Z",
        "notify_completion": true,
        "statute_of_limitations": true,
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "user": {
        "account_owner": true,
        "clio_connect": true,
        "court_rules_default_attendee": true,
        "default_calendar_id": 0,
        "email": "string",
        "enabled": true,
        "etag": "string",
        "first_name": "string",
        "id": 0,
        "initials": "string",
        "last_name": "string",
        "name": "string",
        "phone_number": "string",
        "rate": 0,
        "subscription_type": "Attorney",
        "time_zone": "string",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z"
      },
      "import": {
        "id": 0,
        "status": "not_started",
        "source": "custom",
        "importer_type": "contact",
        "file_type": "csv",
        "has_mappings": true,
        "updated_at": "2018-03-22T20:30:34Z",
        "created_at": "2018-03-22T20:30:34Z",
        "byte_offset": 0,
        "file_size": 0,
        "error_file_available": true,
        "record_count": 0,
        "error_count": 0,
        "fatal_error_message": "string",
        "undone": true,
        "stopped": true
      },
      "account_balances": [
        {
          "id": 0,
          "balance": 0,
          "type": "string",
          "name": "string"
        }
      ],
      "custom_field_values": [
        {
          "id": "string",
          "etag": "string",
          "field_name": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "field_type": "checkbox",
          "field_required": true,
          "field_displayed": true,
          "field_display_order": 0,
          "value": "string",
          "picklist_option": "string"
        }
      ],
      "custom_field_set_associations": [
        {
          "id": 0,
          "etag": "string",
          "display_order": 0,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ],
      "relationships": [
        {
          "id": 0,
          "etag": "string",
          "description": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ],
      "task_template_list_instances": [
        {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        }
      ]
    }
    

    Properties

    allOf

    Name Type Required Description
    anonymous Matter_base false No description

    and

    Name Type Required Description
    anonymous object false No description
    » client Contact_base false No description
    » contingency_fee ContingencyFee_base false No description
    » custom_rate MatterCustomRate false No description
    » folder Folder_base false No description
    » group Group_base false No description
    » matter_budget MatterBudget_base false No description
    » originating_attorney User_base false No description
    » practice_area PracticeArea_base false No description
    » responsible_attorney User_base false No description
    » statute_of_limitations Task_base false No description
    » user User_base false No description
    » import ImportDetail_base false No description
    » account_balances [AccountBalance_base] false AccountBalance
    » custom_field_values [CustomFieldValue_base] false CustomFieldValue
    » custom_field_set_associations [CustomFieldSetAssociation_base] false CustomFieldSetAssociation
    » relationships [Relationship_base] false Relationship
    » task_template_list_instances [TaskTemplateListInstace_base] false TaskTemplateListInstace

    MatterShow

    {
      "data": {
        "id": 0,
        "etag": "string",
        "number": 0,
        "display_number": "string",
        "custom_number": "string",
        "description": "string",
        "status": "Pending",
        "location": "string",
        "client_reference": "string",
        "billable": true,
        "maildrop_address": "string",
        "billing_method": "flat",
        "open_date": "2018-03-22",
        "close_date": "2018-03-22",
        "pending_date": "2018-03-22",
        "created_at": "2018-03-22T20:30:34Z",
        "updated_at": "2018-03-22T20:30:34Z",
        "shared": true,
        "client": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "first_name": "string",
          "last_name": "string",
          "type": "Company",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "clio_connect_email": "string",
          "prefix": "string",
          "title": "string",
          "initials": "string",
          "client_connect_user_id": 0,
          "primary_email_address": "string",
          "primary_phone_number": "string",
          "ledes_client_id": "string"
        },
        "contingency_fee": {
          "id": 0,
          "etag": "string",
          "show_contingency_award": true
        },
        "custom_rate": {
          "type": "FlatRate",
          "on_invoice": true,
          "rates": [
            {
              "id": 0,
              "rate": 0,
              "award": 0,
              "note": "string",
              "date": "2018-03-22",
              "user": {
                "enabled": true,
                "etag": "string",
                "id": 0,
                "name": "string"
              },
              "group": {
                "id": 0,
                "etag": "string",
                "name": "string"
              },
              "activity_description": {
                "id": 0,
                "etag": "string",
                "name": "string"
              }
            }
          ]
        },
        "folder": {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "deleted_at": "2018-03-22T20:30:34Z",
          "type": "Folder",
          "locked": true,
          "name": "string",
          "root": true
        },
        "group": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "type": "UserGroup"
        },
        "matter_budget": {
          "id": 0,
          "etag": "string",
          "budget": 0,
          "include_expenses": true,
          "notification_threshold": 0,
          "notify_users": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "originating_attorney": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "practice_area": {
          "id": 0,
          "etag": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "name": "string",
          "code": "string"
        },
        "responsible_attorney": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "statute_of_limitations": {
          "id": 0,
          "etag": "string",
          "name": "string",
          "status": "pending",
          "description": "string",
          "priority": "High",
          "due_at": "2018-03-22",
          "completed_at": "2018-03-22T20:30:34Z",
          "notify_completion": true,
          "statute_of_limitations": true,
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "user": {
          "account_owner": true,
          "clio_connect": true,
          "court_rules_default_attendee": true,
          "default_calendar_id": 0,
          "email": "string",
          "enabled": true,
          "etag": "string",
          "first_name": "string",
          "id": 0,
          "initials": "string",
          "last_name": "string",
          "name": "string",
          "phone_number": "string",
          "rate": 0,
          "subscription_type": "Attorney",
          "time_zone": "string",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z"
        },
        "import": {
          "id": 0,
          "status": "not_started",
          "source": "custom",
          "importer_type": "contact",
          "file_type": "csv",
          "has_mappings": true,
          "updated_at": "2018-03-22T20:30:34Z",
          "created_at": "2018-03-22T20:30:34Z",
          "byte_offset": 0,
          "file_size": 0,
          "error_file_available": true,
          "record_count": 0,
          "error_count": 0,
          "fatal_error_message": "string",
          "undone": true,
          "stopped": true
        },
        "account_balances": [
          {
            "id": 0,
            "balance": 0,
            "type": "string",
            "name": "string"
          }
        ],
        "custom_field_values": [
          {
            "id": "string",
            "etag": "string",
            "field_name": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "field_type": "checkbox",
            "field_required": true,
            "field_displayed": true,
            "field_display_order": 0,
            "value": "string",
            "picklist_option": "string"
          }
        ],
        "custom_field_set_associations": [
          {
            "id": 0,
            "etag": "string",
            "display_order": 0,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ],
        "relationships": [
          {
            "id": 0,
            "etag": "string",
            "description": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ],
        "task_template_list_instances": [
          {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          }
        ]
      }
    }
    

    Properties

    Name Type Required Description
    data Matter true No description

    MatterList

    {
      "data": [
        {
          "id": 0,
          "etag": "string",
          "number": 0,
          "display_number": "string",
          "custom_number": "string",
          "description": "string",
          "status": "Pending",
          "location": "string",
          "client_reference": "string",
          "billable": true,
          "maildrop_address": "string",
          "billing_method": "flat",
          "open_date": "2018-03-22",
          "close_date": "2018-03-22",
          "pending_date": "2018-03-22",
          "created_at": "2018-03-22T20:30:34Z",
          "updated_at": "2018-03-22T20:30:34Z",
          "shared": true,
          "client": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "first_name": "string",
            "last_name": "string",
            "type": "Company",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "clio_connect_email": "string",
            "prefix": "string",
            "title": "string",
            "initials": "string",
            "client_connect_user_id": 0,
            "primary_email_address": "string",
            "primary_phone_number": "string",
            "ledes_client_id": "string"
          },
          "contingency_fee": {
            "id": 0,
            "etag": "string",
            "show_contingency_award": true
          },
          "custom_rate": {
            "type": "FlatRate",
            "on_invoice": true,
            "rates": [
              {
                "id": 0,
                "rate": 0,
                "award": 0,
                "note": "string",
                "date": "2018-03-22",
                "user": {
                  "enabled": true,
                  "etag": "string",
                  "id": 0,
                  "name": "string"
                },
                "group": {
                  "id": 0,
                  "etag": "string",
                  "name": "string"
                },
                "activity_description": {
                  "id": 0,
                  "etag": "string",
                  "name": "string"
                }
              }
            ]
          },
          "folder": {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "deleted_at": "2018-03-22T20:30:34Z",
            "type": "Folder",
            "locked": true,
            "name": "string",
            "root": true
          },
          "group": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "type": "UserGroup"
          },
          "matter_budget": {
            "id": 0,
            "etag": "string",
            "budget": 0,
            "include_expenses": true,
            "notification_threshold": 0,
            "notify_users": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "originating_attorney": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "practice_area": {
            "id": 0,
            "etag": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z",
            "name": "string",
            "code": "string"
          },
          "responsible_attorney": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "statute_of_limitations": {
            "id": 0,
            "etag": "string",
            "name": "string",
            "status": "pending",
            "description": "string",
            "priority": "High",
            "due_at": "2018-03-22",
            "completed_at": "2018-03-22T20:30:34Z",
            "notify_completion": true,
            "statute_of_limitations": true,
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "user": {
            "account_owner": true,
            "clio_connect": true,
            "court_rules_default_attendee": true,
            "default_calendar_id": 0,
            "email": "string",
            "enabled": true,
            "etag": "string",
            "first_name": "string",
            "id": 0,
            "initials": "string",
            "last_name": "string",
            "name": "string",
            "phone_number": "string",
            "rate": 0,
            "subscription_type": "Attorney",
            "time_zone": "string",
            "created_at": "2018-03-22T20:30:34Z",
            "updated_at": "2018-03-22T20:30:34Z"
          },
          "import": {
            "id": 0,
            "status": "not_started",
            "source": "custom",
            "importer_type": "contact",
            "file_type": "csv",
            "has_mappings": true,
            "updated_at": "2018-03-22T20:30:34Z",
            "created_at": "2018-03-22T20:30:34Z",
            "byte_offset": 0,
            "file_size": 0,
            "error_file_available": true,
            "record_count": 0,
            "error_count": 0,
            "fatal_error_message": "string",
            "undone": true,
            "stopped": true
          },
          "account_balances": [
            {
              "id": 0,
              "balance": 0,
              "type": "string",
              "name": "string"
            }
          ],
          "custom_field_values": [
            {
              "id": "string",
              "etag": "string",
              "field_name": "string",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z",
              "field_type": "checkbox",
              "field_required": true,
              "field_displayed": true,
              "field_display_order": 0,
              "value": "string",
              "picklist_option": "string"
            }
          ],
          "custom_field_set_associations": [
            {
              "id": 0,
              "etag": "string",
              "display_order": 0,
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ],
          "relationships": [
            {
              "id": 0,
              "etag": "string",
              "description": "string",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ],
          "task_template_list_instances": [
            {
              "id": 0,
              "etag": "string",
              "created_at": "2018-03-22T20:30:34Z",
              "updated_at": "2018-03-22T20:30:34Z"
            }
          ]
        }
      ]
    }
    

    Properties

    Name Type Required Description
    data [Matter] true Matter List Response